Snowflake — облачная платформа для хранения и аналитики данных, разработанная для объединения хранилища данных, обработки запросов и инструментов для аналитики в единой среде. Система изначально спроектирована как полностью управляемый сервис, развёрнутый в инфраструктуре крупных облачных провайдеров, обеспечивающий разделение хранилища и вычислений, автоматическое масштабирование и управление ресурсами без необходимости развертывания серверной инфраструктуры пользователем.
Платформа поддерживает хранение структурированных и полуструктурированных данных, предоставляет средства для массовой загрузки, обмена данными между организациями и управления метаданными. Snowflake используется для построения витрин данных, аналитических платформ и рабочих процессов машинного обучения, включая интеграцию с инструментами визуализации и внешними вычислительными сервисами. Архитектура нацелена на обеспечение изоляции рабочих нагрузок, управления затратами и поддержание консистентности при параллельной обработке больших объёмов данных.
- Архитектура: разделение хранения и вычислений, централизованное хранилище данных и независимые виртуальные «скольжения» вычислительных кластеров для параллельной обработки запросов.
- Хранение данных: поддержка структурированных и полуструктурированных форматов (например, JSON, Avro, Parquet) с управлением версиями и автоматической оптимизацией хранения.
- Вычисления: масштабируемые виртуальные кластеры для выполнения SQL-запросов с возможностью автоматического масштабирования и приостановки для контроля затрат.
- Безопасность и управление доступом: механизмы аутентификации, авторизации, шифрования данных в покое и при передаче, а также управление политиками доступа на уровне объектов.
- Обмен данными: встроенные возможности для безопасного обмена наборами данных между учётными записями и организациями без дублирования данных.
- Интеграция и экосистема: поддержка стандартных протоколов и коннекторов для ETL/ELT-инструментов, BI-платформ, языков программирования и облачных сервисов.
- Инструменты аналитики и ML: функции для подготовки данных, интеграция с инструментами машинного обучения и возможностью запуска внешних вычислений на основе данных внутри платформы.
- Управление рабочими процессами: средства для планирования задач, контроля версий данных и аудита операций с данными.
- Производительность: оптимизации выполнения запросов, кэширование и адаптивные планы выполнения для ускорения аналитических нагрузок.
- Модель ценообразования: оплата за используемое хранилище и отдельно за вычислительные ресурсы, позволяющая контролировать расходы за счёт масштабирования по требованию.