Обсуждаем ClickHouse
да но почему.. там же явно вы UNION DISTINCT указали...
ну разве что оно ошибочно UNION DISTINCT SELECT читает как UNION SELECT DISTINCT
Запросами на системные таблицы.
https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-data-migration/add_remove_replica/
subselect внутри мутации вообще плохая идея... сделайте лучше на словарях
https://kb.altinity.com/altinity-kb-queries-and-syntax/update-via-dictionary/
кх нужен драйвер чтобы работать сам с собой ? интересная для меня инфа, не знал
Читать полностью…встретили ошибку при мутациях c UNION 25.3.2.39, куда смотреть? как исправить?
(DELETE WHERE `Ссылка` IN (SELECT `Ссылка` FROM temp_tables.S_Nomenklatura_update UNION DISTINCT SELECT `Ссылка` FROM temp_tables.S_Nomenklatura_delete))
Code: 36. DB::Exception: UNION mode UNION_DEFAULT must be normalized. (BAD_ARGUMENTS), Stack trace (when copying this message, always include the lines below):Читать полностью…
DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000000f48dcdb
DB::Exception::Exception(PreformattedMessage&&, int) @ 0x0000000009f6520c
DB::Exception::Exception(int, FormatStringHelperImpl::type>, char const*&&) @ 0x000000000c5bf66b
DB::UnionNode::UnionNode(std::shared_ptr, DB::SelectUnionMode) @ 0x0000000012bceb18
DB::(anonymous namespace)::QueryTreeBuilder::buildSelectWithUnionExpression(std::shared_ptr const&, bool, String const&, std::shared_ptr const&, std::shared_ptr const&) const @ 0x0000000012c41645
DB::(anonymous namespace)::QueryTreeBuilder::buildExpression(std::shared_ptr const&, std::shared_ptr const&) const @ 0x0000000012c3fd6e
DB::(anonymous namespace)::QueryTreeBuilder::buildExpression(std::shared_ptr const&, std::shared_ptr const&) const @ 0x0000000012c4064a
DB::(anonymous namespace)::QueryTreeBuilder::buildSelectExpression(std::shared_ptr const&, bool, String const&, std::shared_ptr const&, std::shared_ptr const&) const @ 0x0000000012c448fa
DB::(anonymous namespace)::QueryTreeBuilder::buildSelectOrUnionExpression(std::shared_ptr const&, bool, String const&, std::shared_ptr const&, std::shared_ptr const&) const @ 0x0000000012c3e326
DB::buildQueryTree(std::shared_ptr, std::shared_ptr) @ 0x0000000012c3e066
DB::(anonymous namespace)::prepareQueryAffectedQueryTree(std::vector> const&, std::shared_ptr const&, std::shared_ptr) @ 0x0000000013615c7e
DB::isStorageTouchedByMutations(std::shared_ptr, std::shared_ptr, std::shared_ptr const&, std::vector> const&, std::shared_ptr) @ 0x0000000013614fb1
DB::MutateTask::prepare() @ 0x00000000147c2e40
DB::MutateTask::execute() @ 0x00000000147c2a04
DB::ReplicatedMergeMutateTaskBase::executeStep() @ 0x000000001482e841
DB::MergeTreeBackgroundExecutor::threadFunction() @ 0x000000001454326d
ThreadPoolImpl>::ThreadFromThreadPool::worker() @ 0x000000000f5c3e1b
void std::__function::__policy_invoker::__call_impl[abi:ne190107]::ThreadFromGlobalPoolImpl>::ThreadFromThreadPool::)(), ThreadPoolImpl>::ThreadFromThreadPool>(void (ThreadPoolImpl>::ThreadFromThreadPool::&&)(), ThreadPoolImpl>::ThreadFromThreadPool&&)::'lambda'(), void ()>>(std::__function::__policy_storage const*) @ 0x000000000f5ca942
ThreadPoolImpl::ThreadFromThreadPool::worker() @ 0x000000000f5c114f
void* std::__thread_proxy[abi:ne190107]>, void (ThreadPoolImpl::ThreadFromThreadPool::)(), ThreadPoolImpl::ThreadFromThreadPool>>(void*) @ 0x000000000f5c841a
? @ 0x00007f85e249f802
? @ 0x00007f85e243f450
(version 25.3.2.39 (official build))
А вот чтобы работал новый тип json нужно подключать кликхауз драйвер 0.8.2 и в нём временки не видны становятся, это как-то обошли?
Читать полностью…ага, идею понял. Так возможно проще будет. Попробую.
Читать полностью…да, я из бачта достаю уникальные ids и генерю запрос
Читать полностью…ну у меня там и так уже есть стейджовая таблица для левой таблицы. А для правой CTE в которой как раз и ошибка. Возможно между надо какую-то временную таблицу сделать и для правой.
Читать полностью…Из подводных камней - если у вас в IN значений на 2 Мб, то, скорее всего, запросы будут еле ползать. А так увеличивайте, почему нет то.
Читать полностью…Если вы про max_threads, то я с зафиксированным количеством в 16 тредов проверял
Читать полностью…написать issue кликам, если вы правы - это "общая" проблема и ее бы поправить
Читать полностью…Доброго времени суток , смотрите какой вопрос , мне необходимо скопировать из MySQL в ClickHouse около 1 миллиарда записей , для этого я залинковал таблицу и с помощью скрипта копировал по определенному количеству записей
INSERT INTO dbo.table1
SELECT
created_at,
data_hash,
CAST(id AS UUID) AS id,
receipt_hash,
source_table,
updated_at
FROM dbo.table2
WHERE created_at >= '2024-03-31 14:56:46'
AND created_at < '2024-04-15 14:56:46';
Но у меня начала появляется вот такая ошибка
SQL Error [1000] [08000]: Poco::Exception. Code: 1000, e.code() = 2013, mysqlxx::Exception: Lost connection to MySQL server during query (10.107.81.4:3306) (version 24.5.1.1763 (official build))
Кто знает в чем проблема и как можно ее решить , заранее спасибо!
Это уже лирика и эмпирика. Главное, что есть решение ,)
Читать полностью…как будто срабатывает это, хотя в запросе явно указано UNION DISTINCT
If you use UNION without explicitly specifying UNION ALL or UNION DISTINCT, you can specify the union mode using the union_default_mode setting. The setting values can be ALL, DISTINCT or an empty string. However, if you use UNION with union_default_mode setting to empty string, it will throw an exception. The following examples demonstrate the results of queries with different values setting.Читать полностью…
analyzer включен или выключен?
SELECT * FROM system.settings WHERE name LIKE '%analyzer%' FORMAT VerticalЧитать полностью…
Привет всем, кто подскажет самый лёгкий способ создать копию базы но нужна только структура.
Читать полностью…https://github.com/ClickHouse/ClickHouse/issues/69428
ваше ?
В 25.3 уже без allow работает, но чтобы селект делать нужен новый драйвер
Читать полностью…я с таким не сталкивался, allow_expirimental_.... чего-то там мне достаточно было чтобы включить джсон на кх
Читать полностью…У меня один insert в одну таблицу. Батчи большие. Я просто хочу балансировку между репликами. Уменьшить время рассинхрона при селекте. Не то чтобы это было критично. Но все же было бы приятно, чтобы уменьшилось время.
Тогда другой вопрос про балансировку. Уже про chproxy. Пусть есть кластер - 2 шарда по 2 реплики. Есть два варианта настройки Chproxy - просто прописать все ноды и реплики либо сделать группировку по шардам. Может кто-то пробовал и скажет - какой лучше?
а может есть возможность доставать эти ид уже из таблицы куда этот батч вставлен ?
если нет
тогда сделайте временную таблицу в памяти и оттуда
where id in (select id from temp_table)
возможно вам CTE не нужно
у вас, как я понял, where in (list_of_ids) и этот list_of_ids генерируется скриптом ?
я такой момент обошел за счет создания временных таблиц или подзапросов (смотря что нужно в каких случаях)
Читать полностью…Всем привет. Какие есть подводные камни увелечения max_query_size
до например 2mb? История в чем - надо поджойнить две таблицы (писал уже выше) и для таблицы с права (это таблица users) подготавливаю dataset с условием WHERE id in (...)
. Запросы стали пролезли по памяти, но там где слева кардинальность поля высокая, запросы падают с ошибкой по этому параметру.
попробуй задать количество потоков в settings для обоих кликов, возможно там дефолтное кол-во поменялось
Читать полностью…Всем привет. У меня проблема с обновлением кх с 24.3 до 25.3.
Сильно проседает скорость вставок из jsoneachrow файлов в MergeTree таблицы.
Становится примерно в 1.5-2 раза медленнее. Это заметно только когда нагрузка на кх высокая — старый кх использует больше цпу, а новый отдыхает.
В кх 12TiB данных, 2.3к баз данных и 165к таблиц.
я потестил на разных версиях кх, и выяснил что деградация в перформансе происходит при переходе с v24.5 на v24.6.
Подскажите, в какую сторону можно поисследовать
в доке сказано что работает только с select_sequential_consistancy=1 insert_quorum_parallel=0 insert_quorum>=2 ....
значит с остальным тупо вообще не работает
engine=distributed вообще ничего не знает про состояние целевой таблицы не реплике в SELECT, только replication_delay
можно попробовать конечно max_replica_delay_for_distributed_queries=1 выставить...
но тогда вообще непонятно как вы собираетесь конкурентные insert делать которые тупо ничего друг о друге не знают на разных репликах и всегда будут давать replica_delay > 1
может вам проще на клиенте умную балансировку организовать
чтобы и INSERT и SELECT на одну реплику приходил?
или у вас там куча конкурентных INSERT?
если еще и маленькие батчи, то вы клик тупо убиваете и не надо так...
Ну за свежие версии не скажу точно. Раньше так было
Читать полностью…