@clickhouse_ru

Страница 195 из 723
Alex
06.07.2017
14:26:01
Меня смущает нечётность количества. Я полагаю, что мы должны их взгромоздить в 3 шарда, попарно, но не понимаю, сработает ли это.

Andrey
06.07.2017
14:36:53
Меня смущает нечётность количества. Я полагаю, что мы должны их взгромоздить в 3 шарда, попарно, но не понимаю, сработает ли это.
можно сделать к примеру 2 шарда и с этих 22х шардов реплику на 3й хост. А вообще не так давно упоминали про перекрестную репликацию

Mikhail
06.07.2017
14:37:20
Привет! Подскажите, пожалуйста, можно ли как-то через jdbc-драйвер (используем спринговый JdbcTemplate) получить значение rows_before_limit_at_least ?

papa
06.07.2017
14:42:21
ClickHouseConnection -> ClickHouseStatement -> ClickHouseResponse

Google
Alex
06.07.2017
14:57:24
а какое стоит ограничение на количество VALUES в одном INSERT запросе?

Вася
06.07.2017
15:12:58
Миллион без проблем улетал.

Sergii
06.07.2017
15:21:53
а кто нибудь использовал max_files_to_modify_in_alter_columns? у меня выставлено уже в очень большое число, но все равно не помогает: Suspiciously many (116) files

получаю ошибку Suspiciously many (116) files



Alexey
06.07.2017
15:33:48
Vitaliy
06.07.2017
15:36:59
там много смотреть, можно на пальцах: для Nullable в начало пишем UInt8 (зачем: 1 есть значение, 0 - нет ?) дальше если есть значение то пишем его как есть (например String: длина + сам текст в байтах), если значения нет то ничего не пишем ?
В Null-маске 1 - NULL, 0 - не NULL. Колонка строк сериализуются как последовательность <size_without_ending_zero><chars>, причем размер в формате base128. Размер колоки с маской и колонки с данными совпадают. В колоне данных на месте NULL значений будут пустые строки (т.е. байт \0).

Vladimir
06.07.2017
15:53:42
Вопрос. Прилага на java, из кафки прилетают данные постоянно, как лучше их положить в КХ через jdbc preparedStatement батчем через jdbc sendRowBinaryStream или может по http array слать? как быстрее должно быть?

Igor
06.07.2017
15:56:06
по мне так sendRowBinaryStream

у меня sendRowBinaryStream льет 40 тысяч строк в секунду при размере батча 100к записей

Aleksey
06.07.2017
16:00:19
Привет, ребят, подскажите, как создать материализованную вьюху on cluster? В доках указан пример для таблицы, а вот для матвьюхи нет и на мои попытки дб ругается syntax error.

Google
Vladimir
06.07.2017
16:41:01
Еще маленькии вопросик может кто знает. Надо батчем сохранить пачку строк Строки разряженные (не все колонки есть, скорее в каждой строчке есть только 10% колонок)

очень не хочется пропуски 0 заполнять

а по другому это получаю SQLException: Not all parameters binded

sendRowBinaryStream посмотрел, там та же фигня будет

Алексей
06.07.2017
17:14:34
очень не хочется пропуски 0 заполнять
думаю, можно прописать эти нули как значения по умолчанию

Vladimir
06.07.2017
17:15:09
при создании таблицы?

Алексей
06.07.2017
17:15:15
ага

Vladimir
06.07.2017
17:15:48
так от этого проверка же в jdbc не исчезнет

Алексей
06.07.2017
17:15:56
есть еще вот https://clickhouse.yandex/docs/ru/query_language/queries.html#alter

Vladimir
06.07.2017
17:16:56
так я насколько понял тут мы до сервера не добераемся

драйвей отклоняет вставку

значение по умолчянию на стороне сервера не помогут

вы пробовали или думаете что поможет?

Алексей
06.07.2017
17:20:05
хм, похоже нужно как-то сделать умолчания на уровне приложения

с этим вам не помогу, с jdbc не знаком

Vladimir
06.07.2017
17:21:32
ну сейчас я просто забиваю все нулями чего у меня нету, но это если честно дебилизм особенно когда нужна производительность. чувствую как-то можно сделать красиво, но не нашел пока

спсб

Vladimir
06.07.2017
17:24:01
setFloat по имени а не индексу например

Google
Vladimir
06.07.2017
17:24:19
извините не сюда

papa
06.07.2017
17:24:33
если увас у всех строк определено одинаковое множество столбцов, то если для остальных колонок есть значения по умолчанию то должен работать insert into table(columns) values (values)

Vladimir
06.07.2017
17:25:10
а как вы в другой базе это делаете.
не знаю, никак не делаю. но очень хочется вроде частый случай должен быть

сейчас реально глупо будет по 500 нулей на строку по чети гонять

с*

papa
06.07.2017
17:33:13
а если зашлете строку без нулей, то как определить на каких позициях должны быть нули?

Vladimir
06.07.2017
17:35:03
ну например можно не 100 нулей слать, а кодировкой какой внутренней указать "а теперь у нас 100 нулей тут"

всмысле во внутреннем протоколе

почему так сделано вроде понятно. но вдруг есть обходной путь какой в моем случае

Igor
06.07.2017
17:48:41
да это экономия на спичках

Vladimir
06.07.2017
17:50:06
может быть, но все равно бещать в цикле для каждой строчки 500 раз и сетить 0 отожрет свое

бегать*

papa
06.07.2017
17:50:54
по-моему обычно апдейты приходят из небольшого количества источников, каждый из которых апдейтит свое множество колонок, в этом случае если не сливать эти апдейты в одну кучу, то получается несколько "прямоугольных" вставок.

Vladimir
06.07.2017
17:51:24
тут так не получится

строки от пользователей рандомно приходят

Igor
06.07.2017
19:33:44
Коллеги, подскажите пожалуйста. Есть загружаемая снаружи таблица вида orders(OrderId UInt32, CountryCode FixedString(2), ...). При этом данных для поля CountryCode в выгрузке нет, они вычисляются из других таблиц БД, а именно есть некоторая таблица ordersByCountries(OrderId UInt32, CountryCode FixedString(2)) которая эти данные содержит. Надо при загрузке данных в таблицу N1 автоматом подтянуть значение из N2 таблицы по ключу. Как это можно сделать? Вижу вариант сделать словарь на основе второй таблицы и получать через dictGetString(...) но это выглядит немного извратно. Есть вариант доп. таблиц и джойна, но тоже много лишних телодвижений. Можно быть есть способ как то просто заполнить значение, через MATERIALIZED например?

Denys
07.07.2017
07:02:49
Ребята, вижу так никто и не создал issue для jdbc драйвера по поводу ошибки при получении списка колонок)

Vladimir
07.07.2017
08:06:34
Всем привет! Накатили новый билд, и у нас все сломалось :( Апдейт был с 1.1.54236 на 1.1.54245 Ставили отсюда deb http://repo.yandex.ru/clickhouse/xenial stable main Стало очень много ошибок типа Too much parts. Merges are processing significantly slower than inserts. Хотя нагрузка осталась прежней. А также в логах проскакивали ошибки вида 2017.07.07 07:40:05.900493 [ 1736 ] <Error> executeQuery: Code: 244, e.displayText() = DB::Exception: Unexpected ZNODEEXISTS while adding block 1083 with ID 5039648854371848924_9213510072702652090: node exists, e.what() = DB::Exception (from 172.33.90.30:30778) (in query: INSERT INTO statistics_109.table_mutable_sharded (...fields...) VALUES), Stack trace: 0. clickhouse-server(StackTrace::StackTrace()+0x16) [0x2969826] 1. clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)+0x1f) [0x108f49f] 2. clickhouse-server(DB::ReplicatedMergeTreeBlockOutputStream::write(DB::Block const&)+0x3596) [0x2aab586] 3. clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x715) [0x28ff255] 4. clickhouse-server(DB::MaterializingBlockOutputStream::write(DB::Block const&)+0x37) [0x28fd3a7] 5. clickhouse-server(DB::AddingDefaultBlockOutputStream::write(DB::Block const&)+0x281) [0x2bf2a61] 6. clickhouse-server(DB::ProhibitColumnsBlockOutputStream::write(DB::Block const&)+0x5c) [0x2bedeec] 7. clickhouse-server(DB::SquashingBlockOutputStream::finalize()+0x3f5) [0x2d74145] 8. clickhouse-server(DB::SquashingBlockOutputStream::writeSuffix()+0x11) [0x2d742b1] 9. clickhouse-server(DB::TCPHandler::processInsertQuery(DB::Settings const&)+0x31e) [0x10a6f6e] 10. clickhouse-server(DB::TCPHandler::runImpl()+0x6b9) [0x10a7709] 11. clickhouse-server(DB::TCPHandler::run()+0x2b) [0x10a827b] 12. clickhouse-server(Poco::Net::TCPServerConnection::start()+0xf) [0x3274d5f] 13. clickhouse-server(Poco::Net::TCPServerDispatcher::run()+0x13b) [0x327b19b] 14. clickhouse-server(Poco::PooledThread::run()+0xb7) [0x34e6e07] 15. clickhouse-server(Poco::ThreadImpl::runnableEntry(void*)+0xa5) [0x34b2e45] 16. /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f000ccc06ba] 17. /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f000c2e13dd] Откатились назад. Там были критичные правки? Нет чейнжлога?

Sergey
07.07.2017
08:07:02
Google
Vladimir
07.07.2017
08:10:06
А также миллион ошибок вида - 2017.07.07 08:08:23.469231 [ 5584 ] <Error> statistics_148.track_sharded (Merger): Part 20170521_20170531_1913052_3185033_2586 intersects previous part 20170501_20170525_200_2307087_4154 2017.07.07 08:08:23.475581 [ 5584 ] <Error> statistics_148.track_sharded (Merger): Part 20170613_20170618_1284573_1686456_334 intersects previous part 20170611_20170613_1056799_1302331_711 помогите разобраться с этим пожалуйста. Или к кому можно обратиться, чтобы более детально можно было все описать и наконец-то решить все. Мы не можем так жить :(

Vladimir
07.07.2017
08:12:40
Сделать 1рпс на вставку с 20-50к записей балком?

Andrey
07.07.2017
08:13:09
Сделать 1рпс на вставку с 20-50к записей балком?
да, лучше мало балков чем много коротких инсертов

Vladimir
07.07.2017
08:54:39
clickhouse error: [244] DB::Exception: Unexpected ZNODEEXISTS while adding block 153807 with ID 14667436120622000780_2835884480112729262: node exists После вынесения зукипера на отдельные сервера, стала возникать такая ошибка при вставке в шардирвоанную таблицу? С чем это связано?

Vladimir
07.07.2017
08:54:50
Вернусь к своему вопросу о вставке в широкую таблицу строк со множеством рандомно пропущенных столбцов. Как думаете может вместо jdbc в таком случае использовать http + TabSeparated формат? Строку с табами эффективнее копировать чем заполнять Prepared Statement фейковыми нулями

Bulat
07.07.2017
08:57:24
jdbc драйверу кликхауса без разницы PreparedStatement это или нет. В итоге все равно все будет сериализовано в строку и отправлено по хттп

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

может даже быстрее, потому что драйверу не надо будет разбирать-собирать строку с "?"

Vladimir
07.07.2017
08:58:32
Да, смотрел сырцы. На моих объемых GC начинает много отжирать привоздании такого кол-ва объектов.

со строками должно быть полегче ему

кто какой еще объем RAM посоветует для машинки? Данных будет где-то (хм, даже не знаю сколько, в Hbase занимает 10TB)

Машинок 9 под CH приготовим. 32 gb хватит или катострофически мало?

Vladimir
07.07.2017
09:11:34
clickhouse error: [244] DB::Exception: Unexpected ZNODEEXISTS while adding block 153807 with ID 14667436120622000780_2835884480112729262: node exists А такое никто не встречал? Куда нужно смотреть?

Dig
07.07.2017
09:20:43
Периодически появляются в логе ошибки: <Error> ZooKeeper: There are 20000 active watches. There must be a leak somewhere Как реагировать?

Vladimir
07.07.2017
09:27:07
А clickHouse предоставляет платный рисерч кластера на предмет ошибок? К кому с этим вопросом можно обратиться

Vladimir
07.07.2017
09:43:34
2017.07.07 12:12:01.138742 [ 1 ] <Debug> ConfigReloader: Loading config `/etc/clickhouse-server/users.xml' 2017.07.07 12:12:01.140673 [ 1 ] <Warning> ConfigProcessor: Include not found: networks 2017.07.07 12:12:01.170240 [ 1 ] <Warning> ConfigProcessor: Include not found: networks 2017.07.07 12:12:01.193974 [ 1 ] <Information> Application: Loading metadata. 2017.07.07 12:12:01.279892 [ 1 ] <Information> DatabaseOrdinary (default): Total 2 tables. 2017.07.07 12:12:01.343892 [ 2 ] <Information> BackgroundProcessingPool: Create BackgroundProcessingPool with 16 threads 2017.07.07 12:12:01.669168 [ 2 ] <Debug> default.Measures (Data): Loading data parts 2017.07.07 12:12:03.138946 [ 3 ] <Debug> ConfigReloader: Loading config `/etc/clickhouse-server/config.xml' 2017.07.07 12:12:03.140969 [ 3 ] <Warning> ConfigProcessor: Include not found: clickhouse_remote_servers 2017.07.07 12:12:03.141026 [ 3 ] <Warning> ConfigProcessor: Include not found: clickhouse_compression 2017.07.07 12:35:59.247357 [ 2 ] <Debug> default.Measures (Data): Loaded data parts (3 items) 2017.07.07 12:35:59.263356 [ 2 ] <Trace> default.Measures (Data): Found 17121 old parts to remove. 2017.07.07 12:35:59.263401 [ 2 ] <Debug> default.Measures (Data): Removing part 20170706_20170706_2_34846_3403 2017.07.07 12:35:59.585072 [ 2 ] <Debug> default.Measures (Data): Removing part 20170706_20170707_2_34856_3404 ... 2017.07.07 12:37:27.132080 [ 2 ] <Information> DatabaseOrdinary (default): 100.00% 2017.07.07 12:37:27.211678 [ 2 ] <Debug> default.measures (Data): Loading data parts 2017.07.07 12:37:27.211779 [ 2 ] <Debug> default.measures (Data): Loaded data parts (0 items) 2017.07.07 12:37:27.259524 [ 1 ] <Information> DatabaseOrdinary (monitoring): Total 0 tables. 2017.07.07 12:37:27.274861 [ 1 ] <Information> DatabaseOrdinary (system): Total 0 tables. 2017.07.07 12:37:27.276178 [ 1 ] <Debug> Application: Loaded metadata. 2017.07.07 12:37:27.310904 [ 1 ] <Information> Application: Listening http://[::1]:8123 2017.07.07 12:37:27.311018 [ 1 ] <Information> Application: Listening tcp: [::1]:9000 2017.07.07 12:37:27.311085 [ 1 ] <Information> Application: Listening interserver: [::1]:9009 2017.07.07 12:37:27.311132 [ 1 ] <Information> Application: Listening http://127.0.0.1:8123 2017.07.07 12:37:27.311175 [ 1 ] <Information> Application: Listening tcp: 127.0.0.1:9000 2017.07.07 12:37:27.311236 [ 1 ] <Information> Application: Listening interserver: 127.0.0.1:9009 2017.07.07 12:37:27.311435 [ 1 ] <Information> Application: Ready for connections. Это нормально что сервер стартует 25 минут?

Andrey
07.07.2017
10:02:17
я думаю проблема вот в этом

2017.07.07 12:35:59.263356 [ 2 ] <Trace> default.Measures (Data): Found 17121 old parts to remove.

Google
Andrey
07.07.2017
10:04:52
Когда стартует, нагрузка есть по IO?

Vladimir
07.07.2017
10:13:11
не гляянул

думаете так долго читали?

там свего 1млн строк пока

f1yegor
07.07.2017
10:50:32
кто может глянуть на набросок статьи? https://medium.com/@f1yegor/clickhouse-aggregatefunctions-and-aggregatestate-e3fd46b7be74

Vladimir
07.07.2017
11:01:01
clickhouse error: [244] DB::Exception: Unexpected ZNODEEXISTS while adding block 153807 with ID 14667436120622000780_2835884480112729262: node exists А как с этим бороться? Кто-нибудь может сталкивался с таким? У нас записи не вставляются :(

Никита
07.07.2017
11:04:21
Столкнулся с странной ситуацией при сравнении координат. Есть 2 в целом идентичных запроса, которые дают кардинально разные результаты: 1) SELECT COUNT(*) AS total FROM ( SELECT DISTINCT * FROM traffik WHERE x BETWEEN :minLat AND :maxLat AND y BETWEEN :minLon AND :maxLon AND city_id = :cityId AND date>= :fromDate ) 2) SELECT COUNT(*) AS total FROM ( SELECT DISTINCT * FROM traffik WHERE x*1000000 BETWEEN :minLat*1000000 AND :maxLat*1000000 AND y*1000000 BETWEEN :minLon*1000000 AND :maxLon*1000000 AND city_id = :cityId AND date>= :fromDate ) Результат выполнения этих запросов:



В первом случае 24 записи, во втором - 136к+ И второй вариант намного более правдоподобен. При домножении координат на большее число результат не изменяется. В чём может быть проблема?

Это какая-то особенность сравнения float'ов?

papa
07.07.2017
11:09:07
дистинкт, звездочка, флоаты, опасными путями ходите.

Alex
07.07.2017
11:09:21
Флоаты в первичном ключе?

papa
07.07.2017
11:10:10
как таблица объявлена, вродt был какой-тj баг с индексами по float32

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