184 похожих чатов

Проблема в тяжелых джоинах, как их можно оптимизировать?

33 ответов

31 просмотр

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

Максим-Коротченков Автор вопроса
Konstantin Ilchenko
использовать словари вместо джойнов шардировать да...

А как нибудь можно создать словарь на основе таблицы? У меня одна из таблиц как раз состоит из 2 столбцов (ключ-значение)

Максим Коротченков
А как нибудь можно создать словарь на основе табли...

да, можно, https://clickhouse.tech/docs/ru/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources/#dicts-external_dicts_dict_sources-clickhouse

Максим Коротченков
А что за параметр LIFETIME?

Периодичность обновления словаря

Максим-Коротченков Автор вопроса
Clir
Периодичность обновления словаря

А если таблица, на основе которой создается словарь не обновляется? То какой LIFETIME устанавливать?

Максим Коротченков
А если таблица, на основе которой создается словар...

это периодичность подгрузки словарей из таблицы

Максим-Коротченков Автор вопроса
Clir
это периодичность подгрузки словарей из таблицы

И каким тогда его лучше установить?

Максим Коротченков
А если таблица, на основе которой создается словар...

можете выставить в 0 и тогда словарь не будет обновляться

Максим Коротченков
А что за параметр LIFETIME?

Тут можно поподробнее ознакомиться https://clickhouse.tech/docs/ru/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime/

Максим-Коротченков Автор вопроса
Konstantin Ilchenko
Тут можно поподробнее ознакомиться https://clickho...

А получается для создания словаря нужен обязательно PRIMARY KEY?

Максим-Коротченков Автор вопроса
Konstantin Ilchenko
да, вы по нему достаёте значения из словаря

dictGet('dict_auto_weight', 'coeff_weight', cast(regno, 'UInt64')) as Num У меня просто уникальное поле regno и оно типа String, а dictGet требует UInt64 Как можно это обойти?

Максим Коротченков
dictGet('dict_auto_weight', 'coeff_weight', cast(r...

Использовать составной ключ, тут больше инфы https://clickhouse.tech/docs/ru/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure/

Максим-Коротченков Автор вопроса
Konstantin Ilchenko
Использовать составной ключ, тут больше инфы https...

Да, спасибо, это отличный выход, но после создания у меня не видит атрибута coeff_weight Int16 и выдает ошибку Exception: external dictionary 'dict_auto_weight' not found CREATE DICTIONARY dict_auto_weight ( regno String, coeff_weight Int16 ) PRIMARY KEY regno SOURCE(CLICKHOUSE( host '' user '' password '' db '' table 's_auto_coef_weight' secure 1 )) LAYOUT(complex_key_hashed()) LIFETIME(MIN 3600 MAX 5400);

Максим Коротченков
Да, спасибо, это отличный выход, но после создания...

а как вызываете? ошибка же в том что словарь не может найти, скорее всего имя базы не указываете в dictGet

Максим-Коротченков Автор вопроса
Максим-Коротченков Автор вопроса
Максим Коротченков
Все равно та же ошибка

а что тут? ошибки нет? database совпадает? select * from system.dictionaries where name = 'dict_auto_weight'

Максим Коротченков
Он даже атрибуты не увидел

а вы вызываете как? dictGet(‘default.dict_auto_weight’… ?

прокажите столбец last_exception

Максим-Коротченков Автор вопроса
Максим Коротченков
Пустой полностью

system reload dictionary default.dict_auto_weight;

Максим-Коротченков Автор вопроса
Максим-Коротченков Автор вопроса
Clir
перезагрузите словарь

Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Not found: dictionary.source.clickhouse.port (version 20.1.16.120 (official build))

Максим Коротченков
Нет

попробуйте указать

Clir
попробуйте указать

Только указывать 9000 а не http 8123

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта