их именам, в какое пространство они попадают? <yandex>
<dictionary>
<name>ext-dict</name>
<source>
<file>
<path>/etc/clickhouse-server/dict_clickhouse.csv</path>
<format>CSV</format>
</file>
</source>
<layout>
<flat />
</layout>
<structure>
<id>
<name>value_dict</name>
<type>String</type>
</id>
<attribute>
<name>key_dict</name>
<type>String</type>
<null_value></null_value>
</attribute>
</structure>
<lifetime>0</lifetime>
</dictionary>
</yandex>
так определен словарь, SELECT dictGet('ext-dict', value_dict, key_dict) as value_dict, key_dict
:-] FROM system.dictionaries limit 20; не работает, есть какая-то возможность проверить куда создался словарь?
обычно xml словари попадают в корень, проверьте в select * from system.dictionaries, возможно он не загрузился
они так и должны работать, без всякого префикса. ошибка какая?
Code: 47. DB::Exception: Received from localhost:9000. DB::Exception: Missing columns: 'value_dict' 'key_dict' while processing query: 'SELECT dictGet('ext-dict', value_dict, key_dict) AS value_dict, key_dict FROM system.dictionaries LIMIT 20', required columns: 'key_dict' 'value_dict'.
у вас там колонки как аргументы dictGet, это правда то что хотите?
обычно вторым аргументом строка передаётся
не загрузился словарь, есть какие-то методы отладки?
SYSTEM RELOAD DICTIONARY делали после добавления? Почему не через SQL создаеёте словарь? так проще будет управлять ими
нет, спасибо за подсказку
а как-то можно сделать чтобы PRIMARY KEY был строкой для словаря?
ClickHouse поддерживает следующие виды ключей: Числовой ключ. UInt64. Описывается в теге <id> или ключевым словом PRIMARY KEY. Составной ключ. Набор значений разного типа https://clickhouse.tech/docs/ru/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure/
Обсуждают сегодня