Обзор Snowflake: улучшенное хранилище данных в облаке

Хранилища данных, также называемые корпоративными хранилищами данных (EDW), представляют собой высокопараллельные базы данных SQL или NoSQL, предназначенные для анализа. Они позволяют импортировать данные из нескольких источников и быстро создавать сложные отчеты из петабайт данных.

Разница между хранилищем данных и витриной данных заключается в том, что, как правило, витрина данных ограничена одной темой и одним отделом. Разница между хранилищем данных и озером данных заключается в том, что в озере данных хранятся данные в их естественном формате, часто это большие двоичные объекты или файлы, а в хранилище данных данные хранятся в виде базы данных.

Коротко о снежинке

Snowflake - это полностью реляционное хранилище данных ANSI SQL, которое было создано с нуля для облака. Его архитектура отделяет вычислительные ресурсы от хранилища, поэтому вы можете увеличивать и уменьшать масштаб «на лету», без задержек и сбоев, даже во время выполнения запросов. Вы получаете необходимую производительность именно тогда, когда она вам нужна, и платите только за используемые вычислительные ресурсы. Snowflake в настоящее время работает на Amazon Web Services и Microsoft Azure.

     Snowflake - это полностью столбчатая база данных с векторизованным исполнением, что позволяет ей справляться даже с самыми требовательными аналитическими рабочими нагрузками. Адаптивная оптимизация Snowflake гарантирует, что запросы автоматически получат максимальную производительность без использования индексов, ключей распределения или параметров настройки.

     Snowflake может поддерживать неограниченный параллелизм благодаря своей уникальной многокластерной архитектуре общих данных. Это позволяет нескольким вычислительным кластерам одновременно работать с одними и теми же данными без снижения производительности. Snowflake может даже автоматически масштабироваться для обработки меняющихся требований параллелизма с помощью функции виртуального хранилища с несколькими кластерами, прозрачно добавляя вычислительные ресурсы в периоды пиковой нагрузки и уменьшая масштаб, когда нагрузка спадает.

Конкуренты снежинки

Конкурентами Snowflake в облаке являются Amazon Redshift, Google BigQuery и Microsoft Azure SQL Data Warehouse. Другие основные конкуренты, такие как Teradata, Oracle Exadata, MarkLogic и SAP BW / 4HANA, могут быть установлены в облаке, локально и на устройствах.

Amazon Redshift

Amazon Redshift - это быстрое масштабируемое хранилище данных, которое позволяет анализировать все данные в хранилище данных и озере данных Amazon S3. Вы запрашиваете Redshift с помощью SQL. Хранилище данных Redshift - это кластер, который может автоматически развертывать и удалять ресурсы при одновременной загрузке запросов. Однако все узлы кластера подготовлены в одной зоне доступности.

Хранилище данных Microsoft Azure SQL

Хранилище данных Microsoft Azure SQL - это облачное хранилище данных, в котором используется механизм Microsoft SQL и MPP (массовая параллельная обработка) для быстрого выполнения сложных запросов по петабайтам данных. Вы можете использовать хранилище данных SQL Azure в качестве ключевого компонента решения для больших данных, импортируя большие данные в хранилище данных SQL с помощью простых запросов PolyBase T-SQL, а затем используя возможности MPP для выполнения высокопроизводительной аналитики.

Хранилище данных SQL Azure доступно в 40 регионах Azure по всему миру, но конкретный сервер хранилища существует только в одном регионе. Вы можете масштабировать производительность вашего хранилища данных по запросу, но все выполняющиеся запросы будут отменены и откатаны.

Google BigQuery

Google BigQuery - это безсерверное, хорошо масштабируемое и экономичное облачное хранилище данных со встроенными запросами ГИС, механизмом бизнес-аналитики в памяти и машинным обучением. BigQuery выполняет быстрые SQL-запросы от гигабайт до петабайт данных и упрощает подключение к общедоступным или коммерческие наборы данных с вашими данными.

Вы можете указать географическое положение набора данных BigQuery только во время создания. Все таблицы, указанные в запросе, должны храниться в наборах данных в одном месте. Это также относится к наборам внешних данных и сегментам хранилища. Существуют дополнительные ограничения на расположение внешних данных Google Cloud Bigtable. По умолчанию запросы выполняются в том же регионе, что и данные.

Местами могут быть определенные места, например Северная Вирджиния, или крупные географические районы, например ЕС или США. Чтобы переместить набор данных BigQuery из одного региона в другой, вы должны экспортировать его в корзину Google Cloud Storage в том же месте, что и ваш набор данных, скопировать корзину в новое место и загрузить в BigQuery в новом месте.

Снежинка архитектура

Snowflake использует виртуальные вычислительные экземпляры для своих вычислительных потребностей и службу хранения для постоянного хранения данных. Snowflake нельзя запускать в инфраструктурах частного облака (локальных или размещенных).

Не требуется ни установки, ни настройки. Все обслуживание и настройка выполняется Snowflake.

Snowflake использует центральный репозиторий для постоянных данных, который доступен со всех вычислительных узлов в хранилище данных. В то же время Snowflake обрабатывает запросы с помощью вычислительных кластеров MPP (массовая параллельная обработка), где каждый узел в кластере локально хранит часть всего набора данных.

Когда данные загружаются в Snowflake, Snowflake реорганизует эти данные во внутренний сжатый столбчатый формат. Внутренние объекты данных доступны только через запросы SQL. Вы можете подключиться к Snowflake через его веб-интерфейс, через интерфейс командной строки (SnowSQL), через драйверы ODBC и JDBC из таких приложений, как Tableau, через собственные соединители для языков программирования и через сторонние соединители для инструментов BI и ETL.

Снежинка

Особенности снежинки

Безопасность и защита данных. Функции безопасности, предлагаемые в Snowflake, зависят от версии. Даже стандартная версия предлагает автоматическое шифрование всех данных и поддержку многофакторной аутентификации и единого входа. Дополнение Enterprise добавляет периодическое изменение ключей зашифрованных данных, а редакция Enterprise for Sensitive Data добавляет поддержку HIPAA и PCI DSS. Вы можете выбрать, где будут храниться ваши данные, что помогает соответствовать правилам GDPR ЕС.

Стандартная и расширенная поддержка SQL. Snowflake поддерживает большинство DDL и DML, определенных в SQL: 1999, а также транзакции, некоторые расширенные функции SQL и части аналитических расширений SQL: 2003 (функции окон и наборы группировки). Он также поддерживает боковые и материализованные представления, агрегатные функции, хранимые процедуры и определяемые пользователем функции.

Инструменты и интерфейсы. Примечательно, что Snowflake позволяет вам управлять своими виртуальными хранилищами из графического интерфейса или командной строки. Это включает в себя создание, изменение размера (с нулевым временем простоя), приостановку и удаление складов. Изменение размера хранилища во время выполнения запроса очень удобно, особенно когда вам нужно ускорить запрос, который занимает слишком много времени. Насколько мне известно, это не реализовано ни в каком другом программном обеспечении EDW.

Возможности подключения Snowflake имеет соединители и / или драйверы для Python, Spark, Node.js, Go, .Net, JDBC, ODBC и dplyr-snowflakedb, расширения пакета dplyr с открытым исходным кодом, поддерживаемого на GitHub.

Импорт и экспорт данных. Snowflake может загружать широкий спектр данных и форматов файлов. Это включает сжатые файлы; файлы данных с разделителями; Форматы JSON, Avro, ORC, Parquet и XML; Источники данных Amazon S3; и локальные файлы. Он может выполнять массовую загрузку и выгрузку в таблицы и из них, а также непрерывную массовую загрузку из файлов.

Обмен данными. Snowflake поддерживает безопасный обмен данными с другими учетными записями Snowflake. Это упрощается за счет использования клонов таблиц с нулевым копированием.

Снежинка

Снежинка уроки

Snowflake предлагает довольно много обучающих программ и видео. Некоторые из них помогут вам начать работу, некоторые изучают конкретные темы, а некоторые демонстрируют функции.

Я рекомендую проработать практический обзор, описанный в Практическом руководстве по бесплатной пробной версии Snowflake.) Это заняло у меня меньше часа и стоило меньше пяти кредитов. Осталось еще 195 кредитов в бесплатной пробной версии, которых должно быть достаточно для импорта некоторых реальных данных и проверки некоторых запросов.

В учебнике широко используются рабочие листы Snowflake, удобный способ запуска команд и SQL в веб-интерфейсе. Он охватывает, среди прочего, загрузку данных; запросы, кэширование результатов и клонирование; полуструктурированные данные; и путешествия во времени для восстановления объектов базы данных.

В целом, я считаю Snowflake весьма впечатляющей. Я ожидал, что это будет неуклюже, но это совсем не так. Фактически, многие из его операций с хранилищами данных выполняются намного быстрее, чем я ожидал, и когда кажется, что одно из них сканирует, я могу вмешаться и увеличить размер хранилища, не прерывая происходящего.

Большая часть масштабирования может быть автоматизирована. При создании хранилища данных (см. Снимок экрана выше) есть возможность разрешить использование нескольких кластеров, возможность установить политику масштабирования, возможность автоматической приостановки и возможность автоматического возобновления. Период автоматической приостановки по умолчанию составляет 10 минут, что не позволяет складу потреблять ресурсы, когда он простаивает дольше этого времени. Автоматическое возобновление происходит почти мгновенно и происходит всякий раз, когда к хранилищу поступает запрос.

Учитывая, что Snowflake предлагает 30-дневную бесплатную пробную версию с кредитом в 400 долларов, и нет необходимости ничего устанавливать, вы сможете определить, подойдет ли Snowflake для ваших целей, без каких-либо денежных затрат. Я бы порекомендовал попробовать.

-

Стоимость: 2 доллара США / кредит плюс 23 доллара США / ТБ / месяц хранения, стандартный план, предоплаченное хранилище. Один кредит равен одному узлу * час, счет оплачивается вторым. Планы более высокого уровня дороже.

Платформы: Amazon Web Services, Microsoft Azure