tgoop.com/big_data_systems_analysis/145
Last Update:
Snowflake pricing: стоимость хранения и обработки данных
Давно ничего не писала о Snowflake, а ведь сейчас это основная платформа с которой я работаю. Ранее я рассказывала об архитектуре Snowflake, а теперь хочу затронуть не менее важную тему — расчет оплаты за его использование.
Snowflake не требует покупки или аренды физического оборудования. Это облачное решение, где вы платите за потребляемые ресурсы — модель pay-as-you-go. Это одно из его основных преимуществ, которое легко может превратиться в недостаток, если использовать хранилище как попало. Наша задача не просто загружать и обновлять данные, строить витрины, но и делать это максимально экономно. Про особенности оплаты хорошо описано в доках, но всё-таки подчеркну здесь основные моменты.
Snowflake берет плату за хранение данных в зависимости от региона и облачного провайдера (AWS, Azure или GCP). Оплата идет за терабайт в месяц и бывает двух типов:
• On-demand storage — платим только за фактический объем данных.
• Capacity storage — предоплата за объем на год вперёд с возможной экономией до 30%. Однако неиспользованный объем никак не компенсируется.
При этом стоит упомянуть, что в любом из вариантов загружаемые данные автоматически сжимаются, что снижает оплачиваемый объем.
Теперь про обработку данных и тут начинается самое интересное. Вычислительные мощности Snowflake — это виртуальные склады (warehouses). Они обрабатывают запросы и выполняют преобразования данных. Оплата идет в кредитах, и вот как это работает:
• Snowflake предлагает разные размеры warehouses. Чем он больше, тем выше его вычислительная мощность и тем больше кредитов он потребляет в час.
• При этом мы платим только за время, когда warehouse активен. Если он простаивает несколько минут, то автоматически приостанавливается.
• Стоимость кредита зависит от выбранного плана и облачного провайдера.
С передачей данных все просто: внутри одного региона она бесплатна. Но есть нюансы:
• межрегиональная передача между дата-центрами облачных провайдеров оплачивается отдельно и стоит несколько центов за гигабайт;
• выгрузка данных во внешние системы — доп.плата;
• межоблачная передача (например, между AWS и GCP) также оплачивается.
Как оптимизировать расходы?
1. Настроить быстрое «засыпание» warehouses после выполнения пачки задач.
2. Группировать выполнение системных задач.
3. Разделить warehouses для тех. процессов и задач аналитики, правильно подобрав размер под каждый тип задач. Большой warehouse работает быстрее, но и стоит дороже.
4. Использовать автоматическое масштабирование там, где это необходимо — Snowflake может автоматически увеличивать и уменьшать размер warehouse в зависимости от нагрузки.
5. Оптимизировать запросы, ведь неэффективные запросы — прямой путь к лишним расходам.
6. Использовать кэширование результатов — Snowflake кэширует результаты запросов, т.е. если запрос повторяется, результат берется из кэша, что экономит ресурсы.
7. Ну и, конечно, мониторить использование. Snowflake предоставляет подробные отчеты, и хорошо бы регулярно проверять их, чтобы понимать, где можно оптимизировать затраты.
Ценообразование в Snowflake — это целая наука и отдельный проект для анализа и планирования. Выше я описала основы, знание которых поможет немного понять принципы и эффективнее управлять расходами, получая максимум от Snowflake.
#snowflake
BY В мире больших данных
Share with your friend now:
tgoop.com/big_data_systems_analysis/145