Clickhouse, создать словарь с десятичным типом

#sql #clickhouse

#sql #clickhouse

Вопрос:

Я пытаюсь создать словарь clickhouse:

 CREATE DICTIONARY rnd.exchange_rate_history (
    code String,
    date Date,
    rate Decimal(20, 6)
)
PRIMARY KEY code, date...
 

Но я получаю сообщение об ошибке:

Неизвестный тип Decimal(20, 6) (версия 20.6.3.28 (официальная сборка))

Что я должен сделать, чтобы создать словарь с этой структурой?

Комментарии:

1. Вы использовали UInt64 вместо десятичного (20,6)?

2. Да, я пытался. Это работает!

3. Разве это не работает для вас?

4. UInt64 можно использовать в словарях.

5. Десятичный тип имеет 2 обозначения Decimal(20, 6) == Decimal32(6). Кто-то пропустил реализацию первого в словарях.

Ответ №1:

Попробуйте использовать типы с фиксированной точностью, такие как Decimal32:

 CREATE DICTIONARY test.test_dict_01
(
    `code` String,
    `date` Date,
    `rate` Decimal32(6)
)
PRIMARY KEY code, date
SOURCE(FILE(PATH 'opt/dicts/test.csv'))
LIFETIME(MIN 0 MAX 300)
LAYOUT(COMPLEX_KEY_HASHED())
 

Похоже на ошибку, не могли бы вы создать проблему в https://github.com/ClickHouse/ClickHouse/issues ?