I define join table like this:
CREATE TABLE TEST.ZZ_JOINTABLE
(
`DATA_ID` String,
`SERVER_ID` UInt8,
`DEVICE_NO` Nullable(String),
`CONS_NO` Nullable(FixedString(64)),
`ELEC_ADDR` Nullable(String),
`PART_NAME` Nullable(FixedString(100)),
`COMPANY_DESC` Nullable(FixedString(100)),
`KEY_DATA` Tuple(UInt8,String)
)
ENGINE = Join(ANY, LEFT, `KEY_DATA`);
and add virtual column to another table
ALTER TABLE TEST.DATA_TABLE ADD COLUMN DEVICE_NO Nullable(String) MATERIALIZED joinGet('TEST.ZZ_JOINTABLE','DEVICE_NO',(SERVER_ID,DATA_ID))
when restart clickhouse service throw exception ,because name of join table (TEST.ZZ_JOINTABLE) greater than other table (TEST.DATA_TABLE).
when change name of join table for example change it to (TEST.AA_JOINTABLE) clickhouse start successfuly.