
Alexey
12.07.2017
16:43:20

Igor
12.07.2017
17:50:02
Подскажите а с какой версии сервера появилось
"
В новой версии сервера эта колонка system.columns теперь называется default_kind (было default_type)
"
Tabix дает ошибку на отсутствие default_type -> хочу в нем сделать если версия сервера Y то ... иначе Z

Alexey
12.07.2017
18:05:55
1.1.54237

Google

Alexey
12.07.2017
18:06:17
Посмотреть можно тут:
https://github.com/yandex/ClickHouse/commit/8d570e2768b9bbdc0e26571943df65b94ee45f6f
Сверху полный список тегов, куда входит этот коммит.

Igor
12.07.2017
18:10:46
Спасибо!

Alexander
12.07.2017
18:11:21
Я так и не понял как все хранят время какого-то события (желательно точнее секунды)

Alexey
12.07.2017
18:12:15
Обычно UInt64, содержащий unix timestamp домноженный на нужное разрешение (например, 1000) + миллисекунды.

Alexander
12.07.2017
18:13:27
Но ведь мс прекрасно лежит и в uint32
В любом случае, может я не понимаю как правильно, но не очень удобно пользоваться вместо '12:00:00.000'

Alexey
12.07.2017
18:15:34
Да, неудобно.

Alexander
12.07.2017
18:17:57
А так - понятно что это просто сахар надо числами, но и для datetime по идее он не обязательный :)

Ilya
12.07.2017
18:53:55
Вопрос про parimary key и parts у MergeTree - я правильно понимаю, что поле, которое передаётся при создании MergeTree как первый параметр, оно используется при оптимизации SELECT (для отсекания ненужных parts) когда мы в WHERE его указываем?
(даже если оно в primary key не указано)

Alexey
12.07.2017
18:57:06
Да. При чём, крайне желательно указывать условие на него в WHERE, даже если условие на первичный ключ тоже есть.

Ilya
12.07.2017
18:59:06
Угу, спасибо. Сразу второй вопрос в догонку - очевидно из этого вытекает, что если мне например нужен индекс по DateTime, то я указываю DateTime поле в индексе, но для поиска делаю WHERE по обоим полям - и по Date и по DateTime, правильно?

Alexey
12.07.2017
18:59:15
Да.

Google

Ilya
12.07.2017
18:59:24
Супер, спасибо!

Alexey
12.07.2017
18:59:35
(имеем ввиду - условие на Date не выводится само из наличия условия на DateTime)

Ilya
12.07.2017
18:59:48
угу, именно это я и имел ввиду
все логично, спсибо!

Maksim
12.07.2017
20:00:28
https://clickhouse.yandex/docs/en/formats/rowbinary.html?highlight=binary вот здесь не вижу упаковку для Float32
как правильно упаковать?

Alexey
12.07.2017
20:01:31
Native, 4 байта.

Maksim
12.07.2017
20:02:43
ок
надеюсь, что это то, что в эрланге называется «F:32/little-float»
да, судя по всему оно
спасибо

Ilya
12.07.2017
20:17:22
Еще вопрос про primary key - я правильно понимаю, что pk по Array полезен только если искать по полному составу данных в Array? При поиске по вхождению типа has(arr, value) primary key будет бесполезен?

Alexey
12.07.2017
20:17:52
Да.

Ilya
12.07.2017
20:23:01
А если нужно именно вхождение искать и быстро то как лучше делать? Отдельную таблицу со ссылками как в реляционных? Или просто дублировать записи "раскрывая" массив? При том что кол-во элементов в массивах может быть произвольно большим.

Alexey
12.07.2017
20:24:21
Лучше второе - раскрывать массив.
Дело в том, что для хранения действительно длинных массивов в одной строке ClickHouse плохо подходит, тогда как для хранения большого количества мелких строк, наоборот, хорошо.

Ilya
12.07.2017
20:25:18
Понял. Примерно так и думали. :) Еще раз спасибо.

Alexey
12.07.2017
20:27:08

Maksim
12.07.2017
20:27:23
не, я заливаю с raw binary
http post и поехали

Alexey
12.07.2017
20:28:34
понял

Google

Alexey
12.07.2017
20:29:10
но ты планируешь делать полную обвязку (чтоб множество ендпойнтов и т.п.)?

Maksim
12.07.2017
20:29:18
пока нет

Alexey
12.07.2017
20:29:20
т.е. полноценный драйвер/клиент
ок

Maksim
12.07.2017
20:29:42
для нас пока хватает просто post и get

Alexey
12.07.2017
20:31:26
мы начали помаленьку ковырять в этом направлени. Надюесь выложим что-то рабочее.

Igor
12.07.2017
20:48:17
Обновлил Tabix build=17.07.1
- поддержка нового CH
- мелкие правки

Беслан
12.07.2017
20:48:45
Спасибо!

Maksim
12.07.2017
20:51:52

Igor
12.07.2017
21:00:01

Alexey
12.07.2017
21:00:51
> нужно править сам CH - чтобы сервер отдавал
Почему бы и нет...

Maksim
12.07.2017
21:01:05
CH у меня конечно за прокси: давать пользователям к нему доступ исключено. Прокси транслирует псевдоязык в SQL, добавляет account_id и шлет запрос к КХ. В самом прокси регистрируется идентификатор запроса и веб-морда попингивает этот идентификатор спрашивая сколько ещё осталось

Igor
12.07.2017
21:02:20

Alexey
12.07.2017
21:02:53
Хорошо, заранее спасибо!

Igor
12.07.2017
21:03:02

Maksim
12.07.2017
21:09:01
А самое главное: как ты хочешь в яваскрипте получить потоком хедеры?
это же кажется нельзя сделать

Igor
12.07.2017
21:17:25
А самое главное: как ты хочешь в яваскрипте получить потоком хедеры?
МозгК - подсказывает мне что это не возможно, но в теории вот этот код должен что-то получать - progress & onprogress
https://github.com/smi2/tabix.ui/blob/master/src/app/services/api.js#L211
Из нескольких часов "гугления" я понял что не хватает заголовка т/к cors - далеко не факт что JS это вообще может...
Есть запасной и утопичный вариант поднять Socket клиент ( facepalm )
Поэтому я бросил эту затею в свое время, но самому сильно не хватает прогресс бара ((
Соберу CH с заголовками проверю - может сработает

Александр
12.07.2017
21:30:11
Ребят, есть кластер из 8 машин, две отвалились, делаю drop table on cluster, две машины естественно не отвечают. На оставшихся 6 таблица удалилась. Что будет когда две отвалившиеся поднимутся?

Google

Alexey
12.07.2017
21:31:32
Они удалят таблицу сразу после поднятия clickhouse-server.

Александр
12.07.2017
21:37:39
Супер! Спасибо за ответ!

Admin
ERROR: S client not available

Alexander
12.07.2017
22:34:32
А superset кто-то подключал к CH ?

f1yegor
12.07.2017
22:37:10
https://hub.docker.com/r/crobox/superset/

Alexander
13.07.2017
01:00:49

Maxim
13.07.2017
05:33:33
/stat@combot

Combot
13.07.2017
05:33:34
combot.org/chat/-1001080295593
combot.org/chat/-1001080295593

Valeriy
13.07.2017
06:34:23
А есть отдельное право создавать temporary-таблицы? Я могу readonly-пользователю позволить это делать?
А внешние словари могут лежать в MySQL с SSL? В примерах нет настроек указания ssl-опций.

Vladimir
13.07.2017
08:37:50
Всем привет, резко началась ошибка -
DB::Exception: Resource temporarily unavailable.
Что это значит? Кто-нить сталкивался с таким? Одна нода исчерпала все доступные ресурсы, это какие? Может что-то нужно подкручивать?

Andrey
13.07.2017
08:39:09

Vladimir
13.07.2017
08:40:11
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 491441
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 491441
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited


Alex
13.07.2017
08:45:37
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 491441
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 491441
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
По своей практике скажу, что max open files 1024 довольно мало

Andrei
13.07.2017
08:50:00
Всем привет! У меня вопрос по поводу поддержки массивов в jdbc драйвере. На текущий момент он поддерживает в ответе только целочисленные примитивы и строки. Поддержка других типов, например, Float присутствовала, но была выпилена в pull request #112 . Есть для этого какая-то причина?

Sergey
13.07.2017
09:05:13
112 откатил 108, в котором были добавлены типы, практически сразу после мёржа. Обнаружили неполноту тестов и проблему с датами.
Есть pr 115, который предназначен всё таки добавить всё сделанное в 108, после исправления по датам.

Vsevolod
13.07.2017
09:05:43
а я правильно понимаю, что поддержки наносекундных таймстампов в сабже нет?

Andrey
13.07.2017
09:06:06

Vladimir
13.07.2017
09:07:58

Google

Vsevolod
13.07.2017
09:08:00
это печально. впрочем, если сравнение по скорости с kdb будет в пользу CH, то можно будет и попатчить
нет, у меня слегка другая проблема
мне нужно грузить много всякого говна из csv, и питоном это препроцессить не очень приятно
было бы круто иметь такое внутри самой БД

Vladimir
13.07.2017
09:26:03
на что-то интересное напоролся
писало всю ночь без вопросов и пару часов назад отвалилось с
2017.07.13 09:22:25.558977 [ 225 ] <Error> executeQuery: Code: 252, e.displayText() = DB::Exception: Too much parts. Merges are processing significantly slower than inserts., e.what() = DB::Exception (from 10.159.116.118:35611) (in query: INSERT INTO Measures FORMAT TabSeparated ),
вроде понтно, привысили лимит 300
ожидал что в мержах будет очередь а там
:) SELECT * FROM system.merges
SELECT *
FROM system.merges
Ok.
0 rows in set. Elapsed: 0.002 sec.
писать по прежнему не дает.
что делать?
Ждать, перезапускать, начинать заново писать?

KIrill
13.07.2017
09:28:31
А /var/log/clickhouse-server/clickhouse-server.log что-то говорит наверное. У меня в такой ситуации он очень сильно ругался.
Там что-то про Backgroud Thread Pool много разного писалось ...


Vladimir
13.07.2017
09:32:41
А /var/log/clickhouse-server/clickhouse-server.log что-то говорит наверное. У меня в такой ситуации он очень сильно ругался.
Куча такого
2017.07.13 09:33:10.914379 [ 234 ] <Error> HTTPHandler: Code: 252, e.displayText() = DB::Exception: Too much parts. Merges are processing significantly slower than inserts., e.what() = DB::Exception, Stack trace:
0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x28ae4d6]
1. clickhouse-server(DB::Exception::Exception(std::string const&, int)+0x1f) [0x102a3af]
2. clickhouse-server(DB::MergeTreeData::delayInsertIfNeeded(Poco::Event*)+0x34b) [0x29e487b]
3. clickhouse-server(DB::MergeTreeBlockOutputStream::write(DB::Block const&)+0x29) [0x29c1f79]
4. clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x486) [0x2b38906]
5. clickhouse-server(DB::MaterializingBlockOutputStream::write(DB::Block const&)+0x28) [0x2b27698]
6. clickhouse-server(DB::AddingDefaultBlockOutputStream::write(DB::Block const&)+0x235) [0x2c6f295]
7. clickhouse-server(DB::ProhibitColumnsBlockOutputStream::write(DB::Block const&)+0x4f) [0x2c892af]
8. clickhouse-server(DB::SquashingBlockOutputStream::finalize()+0x455) [0x2c507f5]
9. clickhouse-server(DB::SquashingBlockOutputStream::writeSuffix()+0x11) [0x2c50981]
10. clickhouse-server(DB::copyData(DB::IBlockInputStream&, DB::IBlockOutputStream&, std::atomic<bool>*)+0x6d9) [0x2af60e9]
11. clickhouse-server(DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::function<void (std::string const&)>)+0x287) [0x282cc57]
12. clickhouse-server(DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&)+0x1d31) [0x1033301]
13. clickhouse-server(DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&)+0x1e5) [0x10353c5]
14. clickhouse-server(Poco::Net::HTTPServerConnection::run()+0x27b) [0x317899b]
15. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x315d0af]
16. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x10b) [0x317ac3b]
17. clickhouse-server(Poco::PooledThread::run()+0x87) [0x337b807]
18. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0x96) [0x333d456]
19. /lib/x86_64-linux-gnu/libpthread.so.0(+0x8184) [0x7f5a03e86184]
20. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f5a034a0ffd]


KIrill
13.07.2017
09:39:48
Ясно. Схожие строчки вижу ... А движок у таблицы какой? Не CollapsedMergeTree случаем?

Vladimir
13.07.2017
09:40:09
не
MergeTree