Попытка следовать инструкциям для создания словаря с использованием DDL:
-- source table
create table brands (
id UInt64,
brand String
)
ENGINE = ReplacingMergeTree(id)
partition by tuple()
order by id;
-- some data
insert into brands values (1, 'cool'), (2, 'neat'), (3, 'fun');
-- dictionary references source table
CREATE DICTIONARY IF NOT EXISTS brand_dict (
id UInt64,
brand String
)
PRIMARY KEY id
SOURCE(CLICKHOUSE(
host 'localhost'
port 9000
user 'default'
password ''
db 'default'
table 'brands'
))
LIFETIME(MIN 1 MAX 10)
LAYOUT(FLAT())
-- looks good:
show dictionaries;
-- no work
-- Code: 36. DB::Exception: Received from localhost:9000. DB::Exception: external dictionary 'brand_dict' not found.
select dictGetString('brand_dict', 'id', toUInt64(1));
Дает DB::Exception: external dictionary 'brand_dict' not found.
Я не пробовал с XML config пока не уверен, что это c DDL или что-то я делаю не так.