config.xml, в логе ошибок нет, как понять что я делаю не так?
https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-server-config-files/#dictionaries
а можно просто в конфиге прописать, без внешних файлов?
Сделал как в инструкции, прописал в config ссылку <dictionaries_config>dictionaries.xml</dictionaries_config>на dictionaries.xml - все равно не появляется в логе пишет: 2022.08.01 15:22:05.357194 [ 1 ] {} <Warning> ExternalDictionariesLoader: /etc/clickhouse-server/dictionaries.xml: file contains unknown node 'dictionaries_config', expected 'dictionary' 2022.08.01 15:22:05.357221 [ 1 ] {} <Warning> ExternalDictionariesLoader: /etc/clickhouse-server/dictionaries.xml: file contains unknown node 'dictionaries_lazy_load', expected 'dictionary'
Как в инструкции? Серьёзно? Вы же зциклили конфиг на самого себя. Зачем вам все в config.xlm ? Я резко против такого, хотя это и возможно сделать.
сделал отдельно, но так как в базе знаний не работает: 2022.08.01 15:22:05.357194 [ 1 ] {} <Warning> ExternalDictionariesLoader: /etc/clickhouse-server/dictionaries.xml: file contains unknown node 'dictionaries_config', expected 'dictionary' 2022.08.01 15:22:05.357221 [ 1 ] {} <Warning> ExternalDictionariesLoader: /etc/clickhouse-server/dictionaries.xml: file contains unknown node 'dictionaries_lazy_load', expected 'dictionary'
Ну что можно ответить? У меня такая же нога и не болит
Ещё раз. Это совсем не так как в kb. Вы в файле xx говорите искать словари в файле опять xx. Кх там находит НЕ словари и сообщает.
в config.xml что-то нужно прописать?
Читайте по ссылке с самого начала
Получил такой словарь в итоге в system.dictionaries: 00000000-0000-0000-0000-000000000000 NOT_LOADED, да и обратиться к нему нельзя, кликхаус говрит не знает такого словаря, хотя в system.dictionaries он появился. Тот же самый словарь через DDL работает отлично
через select * from default.dc_mydict
Не создаётся автоматически таблица для XML словарей. Надо либо create database dict engine=Dictionary либо create table ... Engine=Dictionary(dictionaryname)
через DDL создается
Вы издеваетесь? Не создаётся автоматически таблица для XML словарей
ничуть, я создал словарь через DDL и могу написать select к нему, и это работает
Да. А XML не работает и всегда так было и это сделано нарочно. Потому что XML словари создаются не в базе данных. Поэтому табличное отображение надо создавать вручную. DDL словари появились через три или четыре года и там все сделано иначе потому что было много просьб дать возможность создавать разные словари в разных базах с одинаковым именем. Табличные отображения (engine Dictionary) тоже появились не сразу. Ну и они сделаны для отладки, они в 10000 раз медленнее чем dictget
Понял, спасибо за разъяснение. Я думал это одно и тоже.
Все таки не понимаю: в документации написано ClickHouse: Полностью или частично хранит словари в оперативной памяти. Периодически обновляет их и динамически подгружает отсутствующие значения. Позволяет создавать внешние словари с помощью xml-файлов или DDL-запросов. Т.е. внешние словари созданные из XML и DDL - это все-таки одно и тоже или нет? Ну кроме того что DDL создает таблицу словаря.
DDL и XML словари внутри под капотом одно и тоже. Создаются они по разному. С тем и с этим надо работать через dictget. Табличные отображения к которым можно делать select для обоих сделаны для отладки.
Все, наконец дошло.
Обсуждают сегодня