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

Подскажите как сделать внешний словарь. Делаю все по инструкции, в

config.xml, в логе ошибок нет, как понять что я делаю не так?

21 ответов

16 просмотров

https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-server-config-files/#dictionaries

Anton-Kobelev Автор вопроса
Denny [Altinity]
https://kb.altinity.com/altinity-kb-setup-and-main...

а можно просто в конфиге прописать, без внешних файлов?

Anton-Kobelev Автор вопроса
Denny [Altinity]
https://kb.altinity.com/altinity-kb-setup-and-main...

Сделал как в инструкции, прописал в 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'

Anton Kobelev
Сделал как в инструкции, прописал в config ссылку ...

Как в инструкции? Серьёзно? Вы же зциклили конфиг на самого себя. Зачем вам все в config.xlm ? Я резко против такого, хотя это и возможно сделать.

Anton-Kobelev Автор вопроса
Denny [Altinity]
Как в инструкции? Серьёзно? Вы же зциклили конфиг ...

сделал отдельно, но так как в базе знаний не работает: 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'

Anton Kobelev
сделал отдельно, но так как в базе знаний не работ...

Ну что можно ответить? У меня такая же нога и не болит

Anton Kobelev
сделал отдельно, но так как в базе знаний не работ...

Ещё раз. Это совсем не так как в kb. Вы в файле xx говорите искать словари в файле опять xx. Кх там находит НЕ словари и сообщает.

Anton-Kobelev Автор вопроса
Anton Kobelev
в config.xml что-то нужно прописать?

Читайте по ссылке с самого начала

Anton-Kobelev Автор вопроса
Denny [Altinity]
Читайте по ссылке с самого начала

Получил такой словарь в итоге в system.dictionaries: 00000000-0000-0000-0000-000000000000 NOT_LOADED, да и обратиться к нему нельзя, кликхаус говрит не знает такого словаря, хотя в system.dictionaries он появился. Тот же самый словарь через DDL работает отлично

Anton-Kobelev Автор вопроса
Denny [Altinity]
Как обращаемся?

через select * from default.dc_mydict

Anton Kobelev
через select * from default.dc_mydict

Не создаётся автоматически таблица для XML словарей. Надо либо create database dict engine=Dictionary либо create table ... Engine=Dictionary(dictionaryname)

Anton Kobelev
через DDL создается

Вы издеваетесь? Не создаётся автоматически таблица для XML словарей

Anton-Kobelev Автор вопроса
Denny [Altinity]
Вы издеваетесь? Не создаётся автоматически таблица...

ничуть, я создал словарь через DDL и могу написать select к нему, и это работает

Anton Kobelev
ничуть, я создал словарь через DDL и могу написать...

Да. А XML не работает и всегда так было и это сделано нарочно. Потому что XML словари создаются не в базе данных. Поэтому табличное отображение надо создавать вручную. DDL словари появились через три или четыре года и там все сделано иначе потому что было много просьб дать возможность создавать разные словари в разных базах с одинаковым именем. Табличные отображения (engine Dictionary) тоже появились не сразу. Ну и они сделаны для отладки, они в 10000 раз медленнее чем dictget

Anton-Kobelev Автор вопроса
Denny [Altinity]
Да. А XML не работает и всегда так было и это сдел...

Понял, спасибо за разъяснение. Я думал это одно и тоже.

Anton-Kobelev Автор вопроса
Denny [Altinity]
Да. А XML не работает и всегда так было и это сдел...

Все таки не понимаю: в документации написано ClickHouse: Полностью или частично хранит словари в оперативной памяти. Периодически обновляет их и динамически подгружает отсутствующие значения. Позволяет создавать внешние словари с помощью xml-файлов или DDL-запросов. Т.е. внешние словари созданные из XML и DDL - это все-таки одно и тоже или нет? Ну кроме того что DDL создает таблицу словаря.

Anton Kobelev
Все таки не понимаю: в документации написано Click...

DDL и XML словари внутри под капотом одно и тоже. Создаются они по разному. С тем и с этим надо работать через dictget. Табличные отображения к которым можно делать select для обоих сделаны для отладки.

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта