В данном выпуске вы узнаете на конкретном примере, как исправить проблему округления в ClickHouse при загрузке данных туда из других источников.
Сегодня мы рассмотрим, что делать, если при загрузке данных из других источников в ClickHouse начинают плыть копейки. Рассмотрим эту проблему на конкретном примере.
Допустим, у нас есть таблица в Эксель, которую мы хотим грузить в ClickHouse. Как именно это делать, мы рассматривали в предыдущем уроке.
Обратите внимание на первую сумму 306 139,19.
Считываем наш файл Питоном. Там данная сумма подгрузилась корректно.
Теперь давайте загрузим этот датафрейм в Кликхаус и посмотрим, что будет.
После прогрузки данных создаем новый датасет и подтягиваем нашу таблицу. Смотрим на суммы. И вдруг обнаруживаем одну неприятность – по одной из сумм копейки загрузились неверно. И самое обидное, что это не просто формат отображения чисел, копейки именно так и подгрузились.
Соответственно, при точных вычислениях вы получите не 19 копеек, а 20. 1 копейка будет в разницах.
Как исправить округление в ClickHouse?
Так как исправить эту неприятность? Сделать это можно с помощью изменения числовых форматов при создании таблицы в Кликхаусе. Давайте вернемся в код Питона и вспомним, какой формат мы задавали для колонки с суммой? Верно, Float. Но, к сожалению, такой формат не очень подходит для точных финансовых вычислений.
Для точных копеек лучше использовать формат Float64. Давайте исправим его и, предварительно удалив старую таблицу, переподгрузим наши данные.
Запускаем новый код, затем заходим в ДатаЛенс и снова подтягиваем таблицу. Ура! Теперь копейки подгрузились верно.
Видео версию данного урока можно посмотреть тут.
Если вам понравился урок, то можете поддержать проект по кнопке ниже. Это очень поможет делать для вас больше интересных и полезных выпусков. Спасибо!
Если вам понравился урок, подписывайтесь на канал или группу и ставьте лайки. А также пишите в комментариях свои кейсы или вопросы. Самые интересные мы обязательно разберем.