Павел Максимов
23.09.2017
06:40:04
Привет ребят, объясните пожалуйста начинающему, что произойдет, если в таблицу MergeTree добавить дублирующие данные, которые уже там есть, они перезапишутся или продублируются? В случае перезаписи, они будут сравниваться по ключевым столбцам указанным при создании таблицы? Я допускаю, что скрипт по добавлению данных, может криво сработать и не добавить данные и чтоб не удалять партицию за месяц, я думаю может еще повторно добавить просто?
Oleg
23.09.2017
06:41:47
продублируются
повторно можно добавлять идентичные блоки данных, тогда CH сам профильтрует дубль (не добавит), но для этого таблица должна быть типа Replicated*
Атата
23.09.2017
06:46:18
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
Вроде как ничего не изменилось (
Tima
23.09.2017
08:27:22
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 то все хорошо. В чем проблема?
Kirill
23.09.2017
15:35:54
Petr
23.09.2017
15:36:33
нет
Kirill
23.09.2017
15:37:42
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 строки все таже ошибка
Vitaliy
23.09.2017
19:15:55
Может кто сталкивался с проблемой
Движок ReplicatedSummingMergeTree
У меня в том списке, где указаны колонки, по которым нужно проводить суммирование, колонки идут не в том порядке, в каком указаны в таблице. Так вот начиная с той колонки, у которой порядок отличается данные левые. Первые две колонки (их порядок такой же, как и в таблице) все бъется с другим источником, а дальше идет не та колонка, которая идет в описании таблицы (в описании она вообще последняя) и вот после нее в данных полный хаос
версия 1.1.54245
вроде в описании нет, что порядок должен соблюдаться
на репликах описание одинаковое
Нет, не сталкивался. Сейчас сделал тест, чтобы еще раз убедиться. Вроде бы все правильно работает https://dpaste.de/iEJR
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
Vitaliy
24.09.2017
11:37:49
А кто может подсказать что за ошибка "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]"
?
А какой запрос?
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
Petr
24.09.2017
18:38:22
Ну я через user.xml сделал, это по сути настроки клиента
Denys ??
24.09.2017
20:31:20
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
Александр
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
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
Атата
25.09.2017
07:04:47
dbeaver? не всё гладко, конечно. но всё приятнее чем в браузере
Александр
25.09.2017
07:40:40
У нас fluent builder запросов да и нативный клиент уже запал в душу
Stas
25.09.2017
07:44:07
Александр
25.09.2017
07:45:14
Igor
25.09.2017
07:57:22
Stas
25.09.2017
07:57:51
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
Кирилл
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
Звездочку не обязательно писать, можно брать только нужные колонки
Кирилл
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