@clickhouse_ru

Страница 268 из 723
Павел Максимов
23.09.2017
06:40:04
Привет ребят, объясните пожалуйста начинающему, что произойдет, если в таблицу MergeTree добавить дублирующие данные, которые уже там есть, они перезапишутся или продублируются? В случае перезаписи, они будут сравниваться по ключевым столбцам указанным при создании таблицы? Я допускаю, что скрипт по добавлению данных, может криво сработать и не добавить данные и чтоб не удалять партицию за месяц, я думаю может еще повторно добавить просто?

Oleg
23.09.2017
06:41:47
продублируются

повторно можно добавлять идентичные блоки данных, тогда CH сам профильтрует дубль (не добавит), но для этого таблица должна быть типа Replicated*

Google
Oleg
23.09.2017
06:46:33
можно, но необходимо поставить zookeeper

Атата
23.09.2017
06:47:10
может кто в курсе, есть ли в планах поддержка consul/etc?

Evgeniy
23.09.2017
06:55:52
Кто нибудь использует Click в качестве многомерной витрины в DWH ?

Павел Максимов
23.09.2017
06:59:51
продублируются
спасибо всем

Evgeniy
23.09.2017
07:13:40


Александр
23.09.2017
07:55:44
Вроде как ничего не изменилось (

Petr
23.09.2017
14:17:08
Привет, как очистить базу не партициями а полностью?

Vladislav
23.09.2017
14:24:59
Сделать на лидере DROP PARTITION всем партициям. Truncate вроде нет

Petr
23.09.2017
14:31:03
Что это значит Сделать на лидере? Я недавно вкатился

Vladislav
23.09.2017
14:41:29
Если нет шардирования или реплик, то на единственной вашей ноде сделать

В общем для случаев одного инстанса это не важно

Google
Petr
23.09.2017
14:42:36
ок

Александр
23.09.2017
14:52:03
Я просто делаю дроп тейбл если надо почистить таблицу

Petr
23.09.2017
15:30:16
Так потом заново создавать нужно же

Ребят такая проблемма, выполняю запрос clickhouse-client --query="INSERT INTO storage FORMAT CSV" < text.csv получаю ошибку Code: 117. DB::Exception: Expected end of line. Но если сделать head text.csv -n 10 > text.txt и инсертить получившийся text.txt то все хорошо. В чем проблема?

Petr
23.09.2017
15:36:33
нет

Petr
23.09.2017
15:56:11
Да, вы правы

Можно как-то игнорировать такие строки?

Kirill
23.09.2017
16:02:06
$ clickhouse-client --help | grep allow --input_format_allow_errors_num arg Settings.h --input_format_allow_errors_ratio arg Settings.h

Petr
23.09.2017
16:43:03
Установил в конфиг файле input_format_allow_errors_num=1000 и input_format_allow_errors_ratio=1, в таблице system.settings показано что значения изменены. Умпортирую 2 строки все таже ошибка

Denys ??
23.09.2017
20:05:39
А кто может подсказать что за ошибка "2017.09.23 22:03:40.825975 [ 13 ] <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 10, e.displayText() = DB::Exception: Not found column metric in block. There are only columns: Path, Value, Time, Date, Timestamp, e.what() = DB::Exception, Stack trace: 0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x330d636] 1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x1424d8f] 2. clickhouse-server(DB::Block::getPositionByName(std::string const&) const+0x93) [0x2bf8e63] 3. clickhouse-server(DB::GraphiteRollupSortedBlockInputStream::readImpl()+0x4ba) [0x357a6ca] 4. clickhouse-server(DB::IProfilingBlockInputStream::read()+0x1e6) [0x2c17e56] 5. clickhouse-server(DB::MergeTreeDataMerger::mergePartsToTemporaryPart(DB::MergeTreeDataMerger::FuturePart const&, DB::MergeListEntry&, unsigned long, long, DB::DiskSpaceMonitor::Reservation*, bool)+0x293f) [0x34692bf] 6. clickhouse-server(DB::StorageMergeTree::merge(unsigned long, bool, std::string const&, bool, bool)+0x4c7) [0x33b3877] 7. clickhouse-server(DB::StorageMergeTree::mergeTask()+0x14b) [0x33b41eb] 8. clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x40e) [0x3492c8e] 9. clickhouse-server() [0x3fca62f] 10. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7f09b241de9a] 11. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f09b1a4336d]" ?

CH 1.1.54292

Александр
23.09.2017
20:13:56
А как запрос выглядит?

Igor
23.09.2017
20:43:48
Подскажите, SELECT toUInt64(number) as n FROM system.numbers LIMIT 50 FORMAT JSON Возращает n как строку в json, что то мне кажется был параметр что бы изменить поведение ... а то tabix плохо рисует при _Int64

Александр
23.09.2017
20:53:14
https://clickhouse.yandex/docs/ru/operations/settings/settings.html#output-format-json-quote-64bit-integers

Вот эта опция

Igor
23.09.2017
20:55:49
Точно, спасибо! Помню было в чате)

Google
Александр
23.09.2017
20:56:05
Roman
24.09.2017
13:06:47
А кто может подсказать что за ошибка "2017.09.23 22:03:40.825975 [ 13 ] <Error> void DB::BackgroundProcessingPool::threadFunction(): Code: 10, e.displayText() = DB::Exception: Not found column metric in block. There are only columns: Path, Value, Time, Date, Timestamp, e.what() = DB::Exception, Stack trace: 0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x330d636] 1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x1424d8f] 2. clickhouse-server(DB::Block::getPositionByName(std::string const&) const+0x93) [0x2bf8e63] 3. clickhouse-server(DB::GraphiteRollupSortedBlockInputStream::readImpl()+0x4ba) [0x357a6ca] 4. clickhouse-server(DB::IProfilingBlockInputStream::read()+0x1e6) [0x2c17e56] 5. clickhouse-server(DB::MergeTreeDataMerger::mergePartsToTemporaryPart(DB::MergeTreeDataMerger::FuturePart const&, DB::MergeListEntry&, unsigned long, long, DB::DiskSpaceMonitor::Reservation*, bool)+0x293f) [0x34692bf] 6. clickhouse-server(DB::StorageMergeTree::merge(unsigned long, bool, std::string const&, bool, bool)+0x4c7) [0x33b3877] 7. clickhouse-server(DB::StorageMergeTree::mergeTask()+0x14b) [0x33b41eb] 8. clickhouse-server(DB::BackgroundProcessingPool::threadFunction()+0x40e) [0x3492c8e] 9. clickhouse-server() [0x3fca62f] 10. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7e9a) [0x7f09b241de9a] 11. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f09b1a4336d]" ?
Может переименовали дефолтные поля для graphitemergetree? Тогда старые значения через rollup xml можно задать

В исходниках по старому, скорее всего ты у себя переименовал. Грепни path_column_name в конфигах

Denys ??
24.09.2017
13:50:13
@rlomonosov : хмммм... спасибо, проверю

Petr
24.09.2017
18:09:43
Гайз, перерыл настройки выставил допустимые ошибки при иморте, но кликхаус просто их игнорирует. В чем проблема может быть? В таблице settings показано что значения изменены

Kirill
24.09.2017
18:16:05
а это точно настройки севера? я думал это настройки клиента... что то типа того: clickhouse-client --input_format_allow_errors_num 20 --query "insert into table format CSVWithNames" < input.csv

Denys ??
24.09.2017
20:31:20
В исходниках по старому, скорее всего ты у себя переименовал. Грепни path_column_name в конфигах
Не то чтоб переименовал - просто заюзал старый rollup.xml от graphouse ?‍♂️ Закомментировал секцию с путями - все побежало, мержится

Vladislav
24.09.2017
20:58:13
Всем привет. Подскажите, плиз, тут попалась интересная задачка. Нужно посчитать среднее время просмотра страницы в разрезе по номеру визита пользователя. т.е. какой сколько времени пользователи проводят на сайте при первом заходе , при втором, десятом и так далее. Табличка формата |date|dateTime|userId|visitTime| Номера показа не хранится. Идея держать счетчики в другой БД и указывать при инсерте - не катит, так как отчет нужно по старым данным. Чувствую что нужно использовать что-то вроде runningAccumulate или rowNumberInAllBlocks, но как пока не понимаю.

Kirill
25.09.2017
04:07:47
P R А версия какая? Эти опции кажется в 254 ввели или где то там. Не так что бы совсем давно.

Stas
25.09.2017
06:40:37
Коллеги, а никто не видел/не делает плагин ClickHouse для Atom.io? Было бы супер круто тк tabix течёт жутко

Alexandr
25.09.2017
06:45:41
tabix в докер, и ограничить по памяти)

scale 3 и пусть перезапускаются

Александр
25.09.2017
06:50:47
Эм...табикс жрет опкративку на клиенте

И жутко лагает на клиенте

А не в докере

Stas
25.09.2017
06:52:42
Эм...табикс жрет опкративку на клиенте
дададада Я от безисходности смотрю в сторону связки CH+ProxySQL+Atom.io (MYSQL API)

Александр
25.09.2017
06:53:53
Я мониторю табикс, но пока сижу на нативном клиенте

Google
Александр
25.09.2017
06:54:17
Все круто, но лаги капец как напрягают (

Alan
25.09.2017
06:54:47
может оперативки купить?)

у кого то и продукты jetbrains тормозят

Stas
25.09.2017
06:55:10
может оперативки купить?)
если вкладку не закрывать через 24 часа выжирает 8+ гигов

Я мониторю табикс, но пока сижу на нативном клиенте
нативный клиент крут и удобен, но хотелось бы IDE

Alan
25.09.2017
06:55:40
а что за задача такая что важно не закрывать ее так долго?)

Admin


Alan
25.09.2017
06:56:47
ну и есть всякое такое https://chrome.google.com/webstore/detail/tab-wrangler/egnjhciaieeiiohknchakcodbpgjnchh

вкладку меняет на заглушку после неактивности потом размораживаешь когда надо )

Stas
25.09.2017
06:57:58
это костыли

Alan
25.09.2017
07:00:07
у меня не лагает не знаю)

Александр
25.09.2017
07:02:07
может оперативки купить?)
Блин, 32 гига на аймаке

Атата
25.09.2017
07:04:47
dbeaver? не всё гладко, конечно. но всё приятнее чем в браузере

Александр
25.09.2017
07:40:40
У нас fluent builder запросов да и нативный клиент уже запал в душу

Александр
25.09.2017
07:45:14
Что за зверь?
github.com/the-tinderbox/ClickhouseBuilder

Konstantin
25.09.2017
08:12:51
подскажите, а от чего зависит формат выдачи результата клиента? делаю группировку по 1 значению - 1 таблица в результате, делаю по другому - разбивается на много мелких табличек

Беслан
25.09.2017
08:13:47
может просто прописать формат?

Google
Беслан
25.09.2017
08:14:03
Например так FORMAT TabSeparatedWithNames

Kirill
25.09.2017
08:14:31
он рисует по мере того как блоки с данными приходят, 1 блок - 1 таблица

Беслан
25.09.2017
08:15:10
принудительное указание формата лечит от этого

Konstantin
25.09.2017
08:17:41
с форматом понятно =) просто иногда забываю писать, хотелось понять из-за чего так, мб делаю чтото неправильно

Кирилл
25.09.2017
08:19:23
Всем привет. Задал вопрос в гугл группе https://groups.google.com/forum/#!topic/clickhouse/-MCUwcLtkt0 Можете ответить?

Konstantin
25.09.2017
08:19:58
принудительное указание формата лечит от этого
если принудительно указать Pretty или PrettyCompact - то не лечится

Всем привет. Задал вопрос в гугл группе https://groups.google.com/forum/#!topic/clickhouse/-MCUwcLtkt0 Можете ответить?
планируем в КХ также писать весь лог биллинга, а можете показать примеры запросов которые вызвали затруднения?

Кирилл
25.09.2017
08:35:37
SELECT order_id, datetime, status FROM Orders WHERE offer_id = 1 ORDER BY datetime DESC LIMIT 1 BY order_id LIMIT 100 Вот к примеру запрос. Сделал 2 таблицы Orders с индексами (offer_id,order_id) и (offer_id,order_id,datetime) и никакой разницы в статистике запроса не увидел. Значит индекс по datetime бесполезен?

Запросы в эту таблицу будут в 99% случаев - выборка последней версии заказа по списку Id и по диапозону дат изменения. Выбрать все заказы, изменившиеся в сентябре например.

Дмитрий
25.09.2017
08:39:25
Добавьте ограничения по date и по datetime в запрос. Тогда разница в статистике будет

Александр
25.09.2017
08:40:30
Всем привет. Задал вопрос в гугл группе https://groups.google.com/forum/#!topic/clickhouse/-MCUwcLtkt0 Можете ответить?
Дату и время изменения заказа можно включить в индекс. Главное изменения писать не по одной строчке, а пачками. КХ читает данные блоками и каждый блок по умолчанию 8192 строки. Даже если нужно прочитать всего одну строку (например запрос не по первичному ключу), то кх все равно прочитает весь блок данных и выберет нужную строку. Я вообще использую replacing merge tree для обновления данных. Обычная строковая СУБД (MySQL, Postgres) не тянут наши аналитические запросы, а данные по которым мы строим аналитику постоянно обновляются и их не так много (50 к пользователей), но при джоинах кол-во строк для анализа растет до 20 миллионов, поэтому я лично использую replacing merge tree для обновления фактов по которым считается аналитика.

Кирилл
25.09.2017
08:43:55
Но при replacing merge tree как я понимаю данные в фоне будут схлопываться и история изменений в итоге потеряется? Получается для истории изменений, чтобы посмотреть кто когда изменил статус например и т.п. стоит заводить отдельную таблицу?

Tima
25.09.2017
08:44:12
Почитайте в документации про движок CollapsingMergeTree - оно то что вам нужно

Александр
25.09.2017
08:45:56
Но при replacing merge tree как я понимаю данные в фоне будут схлопываться и история изменений в итоге потеряется? Получается для истории изменений, чтобы посмотреть кто когда изменил статус например и т.п. стоит заводить отдельную таблицу?
Не обязательно. Можно и из merge tree выбирать актуальные данные. Например подзапросом select * from orders order by datetime desc limit 1 by orderId. Получите последние версии всех заказов.

Звездочку не обязательно писать, можно брать только нужные колонки

Кирилл
25.09.2017
08:48:52
В общем верно я услышал что в таком подходе ничего криминального нет и кликхаус будет эффективно работать в таком случае. Т.е. в случае когда для кажлого заказа хранится вся история его версий (изменений). Но запросы в 99% будут к выборке по последней его версии? Получается эффективным индексом в таком случае будет offer_id, order_id, date, datetime?

Приведу может еще 1 пример чтобы стало понятнее. У нас в системе в месяц поступает порядка 1 000 000 заказов с большим количеством колонок. По ним нужно очень много всяких статистических выборок и с агрегацией и без. Соответсвтвенно предлагается в кликхаус хранить на каждый заказ еще всю историю его изменений, к примеру на каждый заказ в среднем по 10 записей, получается 10 000 000 записей в месяц. Но все выборки, 99% нужно будет выбирать из представления с ORDER by datetime LIMIT 1 BY order_id чтобы обращаться к последней версии заказа.

Vladimir
25.09.2017
08:54:31
Коллеги, добрый день, у меня начала вылезать ошибка DB::Exception: Checksum doesn't match: corrupted data

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