#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 ?