Это в целом, не то что бы большая проблема. Всё равно сериализаторы потом по ключу из имени поля бегают. Просто может быть есть какие-то решения современные
~50% . На портах например нужны subnet\network id. А на дисках нет, таких полей около 5 штук
50% существующих значений это немало, в целом можно хранить там 0(избежать Nullable), оно нормально сжимается будет, особенно если где нибудь в начале ORDER BY прибить тип (диск/сеть) Как другая альтернатива Nested/ либо новый тип map, либо разделить на 2 таблицы
50% существующих значений это немало, в целом можно хранить там 0(избежать Nullable), оно нормально сжимается будет, особенно если где нибудь в начале ORDER BY прибить тип (диск/сеть) Как другая альтернатива Nested/ либо новый тип map, либо разделить на 2 таблицы
А чем Nullable плох? Там просто поля UUID\DateTime\String
А чем Nullable плох? Там просто поля UUID\DateTime\String
Null это создается отдельный файл на диске для каждой нуллабл колонки хранится там бит на то что нулл ли значение или нет. Nullable из за этого и более сложного процессинга начинают тормозить до нескольких раз
Не помогло. Этот способ - через API. Когда через HTTP работаю, это то же самое, там можно задать таймаут. Вопрос - как это же сделать, к примеру, при подключении через ODBC из PowerBI
Не помогло. Этот способ - через API. Когда через HTTP работаю, это то же самое, там можно задать таймаут. Вопрос - как это же сделать, к примеру, при подключении через ODBC из PowerBI
в powerbi должно быть можно указать коннекшен проперти и socket_timeout
судя по всему настройка называет прост Timeout Timeout=60
Не помогло. Этот способ - через API. Когда через HTTP работаю, это то же самое, там можно задать таймаут. Вопрос - как это же сделать, к примеру, при подключении через ODBC из PowerBI
если через ODBC то скорее всего у вас odbc.ini используется. Там есть 2 способа как указывать параметры для подключения к ClickHouse, укажите через Url куда можно добавить к примеру &receive_timeout=6000&send_timeout=6000 или укажите Timeout = 6000. В винде все тоже самое только в настройках DSN.
Уважаемые коллеги, столкнулся с проблемой замедления запросов создания/альтера replicated таблиц при использовании таблиц с движком kafka и materialized views. Есть ли мысли куда копать?
Кластер серверов clickhouse из 3 реплик. Кластер брокеров kafka из 3 реплик. По отдельному кластеру zookeeper из 3 реплик для clickhouse и kafka. На каждом из серверов clickhouse по 30 таблиц с движком Kafka + MatView в Replicated target-таблицы. Если MatView не созданы, запросы типа create table some_table (...) Engine=ReplicatedMergeTree выполняются практически мнгновенно (0.1 сек). Если MatView созданы, даже при отсутствии сообщений в очередях kafka, запросы такого типа замедляются до 5 сек. Выполнение запросов на создание не-replicated таблиц не замедляется.
Уважаемые коллеги, столкнулся с проблемой замедления запросов создания/альтера replicated таблиц при использовании таблиц с движком kafka и materialized views. Есть ли мысли куда копать?
Кластер серверов clickhouse из 3 реплик. Кластер брокеров kafka из 3 реплик. По отдельному кластеру zookeeper из 3 реплик для clickhouse и kafka. На каждом из серверов clickhouse по 30 таблиц с движком Kafka + MatView в Replicated target-таблицы. Если MatView не созданы, запросы типа create table some_table (...) Engine=ReplicatedMergeTree выполняются практически мнгновенно (0.1 сек). Если MatView созданы, даже при отсутствии сообщений в очередях kafka, запросы такого типа замедляются до 5 сек. Выполнение запросов на создание не-replicated таблиц не замедляется.
30 кафка таблиц это немало, они раньше использовали общий background пул, так что потенциально они могут его просто весь забивать постоянным опросом кафки.
30 кафка таблиц это немало, они раньше использовали общий background пул, так что потенциально они могут его просто весь забивать постоянным опросом кафки.
лечится как нибудь? сокращением частоты опроса кафки?
а сделать каскадные MV не получится ? Так вместо 30 консьюмеров будет 1(ну или сколько вам надо) // хотя я мб не так понял. У вас 30 топиков ?
а надежность получения данных в каскадных mv? не получится ли так, что данные дойдут до одной target-таблицы, и не дойдут до другой (по причине какого-либо сбоя), а в kafka запишется offset?