Снежинка в облаках
Это будет небольшой пост про мое знакомство с облачной MPP-базой Snowflake, с которой мне удалось немного поработать, выполняя лабораторные работы курса DE-101 от сообщества DataLearn.
Snowflake - это облачная mpp-база данных, реализованная по модели SaaS (Software as a Service), родом из США.
В России облачные технологии пока не нашли массового принятия в бизнесе, но в Штатах тренд на перенос процессов в облако продолжается уже несколько лет. Бизнес считает затраты и понял, что миграция в облако обходится в конечном счете дешевле он-премис решений. И способствовало этому появление облачных инструментов, в т.ч. баз данных нового поколения, таких как Redshift от Amazon.
Redshift появился в 2012 году и по сути, его выпуск стал той точкой, когда началась облачная эра в обработке и хранении данных. Snowflake вышел в 2016 и на тот момент был темной лошадкой, про которую никто не знал, но сейчас многие бизнесы из сферы технологий выбирают эту базу данных.
В чем же преимущества от того же Redshift ?
Вкратце так. Redshift - это тоже облачная база данных, но она работает по модели Paas.
Т.е. админу кластера иди DBA все-таки нужно будет подготовить VPC (виртуальную частную сеть), создать политики безопасности, назначить роли и доступы (permissions), установить инстанс Redshift, настроить бэкапы и правила автомасштабирования кластера, периодически запускать процедуру vacuum (очистки памяти от удаленных данных)
И самая главная проблема Redshift - это concurrency - приоритезация запросов пользователей. База данных не может обрабатывать одновременно 5 запросов и когда параллельных запросов становится много, то вступает в дело механизм их очередности. Условно говоря, маркетолог, чтобы выполнить свой запрос, должен ждать, когда закончится обучение модели того парня из отдела Data Science.
Частично эту проблему Амазону удалось решить с помощью RA3-нод нового поколения, но они стоят дороже, чем обычные DC2/DS2 ноды.
Архитектура Redshift |
В Snowflake все по другому. Как я уже говорил база данных предоставляется по модели Saas, т.е. вы покупаете готовый сервис. Вам не нужно думать на какой сервер его поставить, как настроить сеть, какие правила безопасности прописать. когда делать бэкапы, как пересчитать индекс, когда накинуть больше ресурсов для выполнения сложных расчетов. Сервис все делает за вас, позволяя сконцентрироваться на решении ваших бизнес задач. И никаких проблем с concurrency.
В отличие от движка Redshift, который по сути является сильно переписанным форком Postgres, инженеры Snowflake создавали свой продукт с нуля и поэтому не были связаны никакими легаси ограничениями.
Архитектура Snowflake |
Snowflake решил проблему concurrency принципиально новым подходом, который стал возможен в облачную эру. Теперь пользователь для решения своей задачи, может выбрать warehouse нужного объема (что-то вроде вычислительной ноды), которая поднимется в облаке для выполнения запроса или вычислений и самоликвидируется после выполнения задачи. И эти ноды никак не конкурируют между собой. Наш парень из отдела маркетинга может спокойно обсчитывать воронку пользователей приложения, пока параллельно дата-саентисты обучают своим модели.
И оплата будет происходить именно за время работы warehouse по тарифу сервиса.
Т.е., ничего не считаем - нет никаких расходов.
А за кластер того же Redshift вам придется платить минимальную сумму всегда, даже если у вас он на самой минимальной конфигурации с одной вычислительной нодой.
А можно мне еще BI добавить ?
Но что меня удивило еще в Снежинке, так это то, что разработчики позаботились о нас - аналитиках и реализовали простые BI-инструменты прямо в самом сервисе! Удобно.
Ситуация: есть какие-то новые данные, с которыми ранее никогда не работали и первым делом хочется посмотреть, как они устроены. В обычном порядке мы должны были подключить какой-нибудь BI-tool. Здесь же мы может сделать это прямо внутри сервиса. Есть возможность применить line chart, bar chart, scatter chart.
Горизонтальный бар-чарт и панель настроек |
Можно визуализировать как результаты выполнения одного запроса, так и создать дашборд с несколькими панелями. Сам дашборд можно расшарить между сотрудниками вашей организации. Нашли интересный инсайт в данных? Тут же применили визуализацию и скинули ссылку вашему коллеге!
Мой тестовый дашборд на основе данных из Маркетплейса |
Отдельной фишкой сервиса является Маркетплейс данных. Это похоже на паблик-датасеты, которые можно подключить в Google BigQuery.
Большие и не очень компании выкладывают в Маркетплейс свои датасеты, к которым можно подключиться и обращаться к ним также, как если бы они лежали в вашей собственной базе данных. Удобно. Такие датасеты можно использовать в качестве 3 party data, для обогащения своих собственных данных. Например, можно подключить датасет с геоданными по какому-то региону и строить свою аналитику через гео-координаты.
Резюме
Развитие технологий баз данных не стоит на месте. Если раньше инженеры и аналитики были ограничены объемом хранилища и скоростью вычислений, то сейчас затраты на хранение 1ТБ в объектном хранилище S3 от Амазон обойдется вам в 23USD в месяц. Более дорогим является опция вычислений, но зато теперь ресурсы не лимитированы сверху, а могут быть затребованы в нужном объеме у облачного провайдера. Redshift сейчас уже 10 лет, Snowflake - 6. А теперь давайте представим, что произойдет с технологиями хранения данных, когда Snowflake отпразднует своё 16-летие? Ухх…)
В качестве доп.материала рекомендую вебинар от Николая Голова - эксперта по высоконагруженным системам, про то, как устроен Snowflake и как был сделан выбор в пользу именно этого сервиса, используя самый, что ни на есть Data Driven подход.
Комментарии
Отправить комментарий