С постоянным ростом объема и скорости данных организации ищут решения для обработки больших данных и любых связанных с этим проблем. Одно из первых решений, которые принимают организации? Принятие облачной модели, которая предлагает гибкость, масштабируемость и высокую производительность.
Snowflake — это облачная платформа хранилища данных, которая набирает популярность благодаря своим многочисленным функциям и эффективности.
В этой статье мы углубимся в архитектуру Snowflake, ключевые функции и цели, которые она решает.
- Что такое Snowflake?
- Ключевые особенности Snowflake
- Стандартная и расширенная поддержка SQL
- Графический веб-интерфейс пользователя (GUI)
- Клиент командной строки (CLI)
- Богатый набор клиентских коннекторов
- Обширные сторонние плагины
- Массовая загрузка и выгрузка данных
- Надлежащая защита данных и реализация безопасности
- Snowflake архитектура
- Уровень хранения
- Вычислить слой
- Уровень облачных сервисов
- Зачем использовать Snowflake?
- Начало работы со Snowflake
- Snowflake из облаков
Что такое Snowflake?
Snowflake — это платформа хранилища данных (DWH) на основе SaaS, которая работает в облачной инфраструктуре AWS или MS Azure. (Вы могли услышать, что это называется хранилищем данных как услуга.)
В отличие от других складских решений, Snowflake использует усовершенствованный ANSI-совместимый механизм SQL, предназначенный для работы исключительно в облаке.
По сути, основная архитектура Snowflake позволяет ей работать в общедоступном облаке, используя виртуальные вычислительные экземпляры и эффективные сегменты хранилища, что делает ее высокомасштабируемым и экономичным решением для обработки огромных объемов больших данных.
Ключевые особенности Snowflake
По сравнению с устаревшими технологиями DWH, Snowflake предлагает ряд функций, в том числе:
Стандартная и расширенная поддержка SQL
Будучи хранилищем данных на основе SQL, он поддерживает указанный язык данных и язык манипулирования данными DML-команды, используемые SQL. Он также предоставляет расширенные команды DML для многотабличных операций, таких как INSERT, MERGE и MULTI-MERGE.
С помощью Snowflake пользователи могут:
- Настройте временные и переходные таблицы для краткосрочных данных
- Используйте аналитические и статистические агрегированные функции и виды сбоку
- Создавайте пользовательские функции (UDF)для расширения функциональности как в SQL, так и в JavaScript.
Графический веб-интерфейс пользователя (GUI)
Snowflake предоставляет пользователям веб-интерфейс для взаимодействия с облаком данных. С помощью веб-интерфейса пользователи могут:
- Управлять своей учетной записью и другими общими настройками
- Мониторинг ресурсов и использования системы
- Данные запроса
Клиент командной строки (CLI)
Snowflake предоставляет CLI на основе Python под названием SnowSQL для подключения к DWH. Это отдельный загружаемый и устанавливаемый терминальный инструмент для выполнения всех запросов, включая запросы определения данных и обработки данных для загрузки и выгрузки данных.
Богатый набор клиентских коннекторов
Snowflake предоставляет широкий спектр коннекторов и драйверов, которые пользователи могут использовать для подключения к своему облаку данных. Некоторые из этих клиентских соединителей включают:
- Python Connector, программный интерфейс для написания приложений Python, которые подключаются к Snowflake.
- Драйвер NodeJS
- Драйвер ODBCдля разработки на C / C ++
- Также драйвер JBDCдля программирования на Java
Обширные сторонние плагины
В дополнение к программным интерфейсам, упомянутым выше, со Snowflake интегрируется несколько других инструментов для работы с большими данными. Эти инструменты варьируются от инструментов бизнес-аналитики до программного обеспечения для интеграции данных, машинного обучения, безопасности и управления.
Массовая загрузка и выгрузка данных
Snowflake позволяет загружать данные в разных форматах и из разных источников — при условии, что данные используют поддерживаемую кодировку символов. Пользователи могут загружать данные из:
- Сжатые файлы
- Источники данных AWS S3
- Локальные файлы
- Плоские файлы данных, такие как CSV и TSV
- Файлы данных в форматах Avro, JSON, ORC, Parquet и XML.
Кроме того, с помощью Snowpipe пользователи могут непрерывно загружать данные партиями из этапов Snowflake, AWS S3 или хранилища Azure.
Надлежащая защита данных и реализация безопасности
С помощью Snowflake пользователи могут:
- Установите регионы для хранения данных в соответствии с нормативными требованиями
- Настройте их уровни безопасности в соответствии с требованиями
Snowflake также автоматически шифрует данные. Контроль доступа на уровне объектов предлагает детальный контроль над тем, кто и к чему имеет доступ.
Snowflake архитектура
Snowflake следует за гибридом архитектуры баз данных с общим диском и без совместного использования. Это состоит из:
- Центральный репозиторий, в котором хранятся данные
- Вычислительные узлы в хранилище данных могут получить доступ к этому базовому хранилищу данных.
Для выполнения запросов Snowflake использует распределенные узлы кластера с массовой параллельной обработкой (MPP), каждый из которых имеет собственное локальное хранилище для локального хранения частей данных, ЦП и памяти.
Каркас Snowflake обычно разделен на три слоя. Все эти уровни независимы друг от друга и могут масштабироваться, настраиваться и управляться индивидуально. Эти слои включают:
- Уровень хранения
- Вычислить слой
- Уровень облачных сервисов
Уровень хранения
Слой, на котором находится центральное хранилище. Любые данные, загруженные в систему, подвергаются разделению и реорганизации в сжатый, внутренне оптимизированный столбчатый формат Snowflake, шифрование с использованием AES 256 и впоследствии сохраняются в облачном хранилище. Snowflake автоматически разбивает разделы, но предоставляет пользователям настройки для настройки параметров разделов.
Данные, хранящиеся на этом уровне, являются центральными, и все узлы в кластере могут получить к ним доступ. Snowflake управляет всеми аспектами хранения данных, тем самым позволяя пользователям взаимодействовать с базовыми данными только через SQL-запросы.
Вычислить слой
Вычислительный уровень обрабатывает выполнение запросов. Для этого используются виртуальные хранилища — независимые вычислительные кластеры MPP с несколькими вычислительными узлами.
Snowflake назначает эти вычислительные узлы от выбранного облачного провайдера каждому пользователю. Эти кластеры автономны — имеют собственный ЦП, память и локальное хранилище, — производительность одного из них не влияет на другие.
Уровень облачных сервисов
Snowflake предоставляет набор сервисов для администрирования и управления облаком данных Snowflake. На этом уровне происходит несколько действий:
- Контроль доступа
- Аутентификация
- Управление инфраструктурой
- Управление метаданными
- Разбор запроса
- Оптимизация
Зачем использовать Snowflake?
Есть множество причин, по которым организации выбирают Snowflake. Вот основные причины:
- Гибридная архитектура предлагает пользователям лучшее из обоих миров. Пользователи платят отдельно за базовый центральный репозиторий и столько вычислительной мощности, сколько им требуется.
- На основе SQL для быстрого обучения. Реализация на основе SQL гарантирует, что разработчикам не придется проходить сложную кривую обучения, чтобы понять новую технологию.
- Данные в первую очередь. Поддерживает клонирование данных и безопасный обмен данными.
- Нет конфигурации инфраструктуры. Snowflake не требует какой-либо конфигурации инфраструктуры — вместо этого Snowflake делает это автоматически после того, как вы выбрали предпочтительного поставщика облачных услуг.
Начало работы со Snowflake
Готовы начать? В настоящее время Snowflake предлагает новым пользователям 30-дневную бесплатную пробную версию. Получив доступ, вы сможете:
Просмотрите наше меню Справочника по снежинкам справа, где вы найдете несколько руководств.
Обратитесь к официальной документации
Snowflake из облаков
Облачные сервисы — это новая норма.
Snowflake — это служба DWH, созданная специально для облака, которая позволяет организациям обрабатывать и хранить огромные большие объемы данных, позволяя независимо масштабировать вычисления и хранилище. Для более быстрого выполнения запросов и повышения производительности Snowflake позволяет пользователям масштабироваться с помощью дополнительных хранилищ данных, предлагая дополнительные вычислительные ресурсы по мере необходимости.
Предлагая расширенные функции DWH, Snowflake помогает сократить расходы на предоставление инфраструктуры и избыточные усилия по ее управлению, позволяя организациям сосредоточиться на создании эффективной аналитики — единственной цели данных.