Глобальная аналитика с AZURE COSMOS DB И SYNAPSE

Tags: Azure, аналитика данных, аналитика, CosmosDB, Synapse

Несколько месяцев назад Microsoft объявила, что она изучала добавление возможности запроса данных в  Cosmos Db через Spark, и это заставило нас задуматься о новых сценариях. Наиболее впечатляющей является возможность проведения Глобальной Аналитики с помощью создания аналитических запросов по операционным данным в режиме реального времени, поступающим из любой точки планеты.  И все это без необходимости самостоятельной обработки инфраструктуры.  Этот сценарий значительно упрощен компанией Microsoft благодаря слиянию Cosmos DB c аналитикой Synapse.

Давайте сначала поговорим о Synapse. То, что начиналось как хранилище данных Azure SQL, сегодня переросло в полномасштабную службу разработки аналитики, называемую  Synapse Analytics. Microsoft взяла все самое лучшее от механизма базы данных MPP и добавила такие возможности как SQL-запросы по требованию, полная интеграция Spark, Data Lake Store Gen2, а также интегрированный опыт авторской разработки.  Это будет аналитическая часть решения Глобальной Аналитики. 

Следующая часть решения Глобальной Аналитики - Cosmos Db. Если Вы еще не знакомы, Cosmos Db - это NoSQL база данных Azure, рожденная в облаке и спроектированная с такими преимуществами как гибкость, эластичность, глобальный охват облачного вычисления. 

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

Глобальная аналитика

Для того чтобы полностью сложить пазл, нужны еще две части.  Первая - это новая возможность Cosmos Db, выпущенная Microsoft, под названием "аналитическое хранилище Cosmos Db". Эта функция берет данные, поступающие из Cosmos Db в режиме реального времени, и сохраняет их в формате Parquet, который является сжатым, колоночным и оптимизированным для аналитики.  Это простое изменение, требующее только включения этой опции (пока только для новых контейнеров, но, скорее всего, все изменится после завершения предварительной фазы).  После того как опция будет включена, процесс и хранилище автоматически управляются Azure, а Вы можете просто сосредоточиться на создании бизнес-решения.  

Последняя часть - новая возможность Synapse под названием Synapse Link. Cosmos Db - первое хранилище данных, поддерживающее Synapse Link, но планируется, что для поддержки будут использоваться также Azure SQL Db или Azure PostgreSQL/MySQL. Synapse Link позволяет прозрачно отправлять запросы на внешнюю базу данных из рабочей области Synapse без необходимости кодирования какого-либо ETL.  В случае с Cosmos DB, так как он использует  “Analytical Store”, это никак не влияет на производительность операционных баз данных Cosmos Db, вычисления проводятся на стороне Synapse. 

Рассмотрев все части, давайте подумаем о Глобальной Аналитике. Можно развернуть базу данных Cosmos Db в западной части США, другую в Германии, а еще одну в Японии;  настроить их на мульти-мастер, так, чтобы локальные сайты в этих трех географических зонах имели самое низкое время отклика для их локальных данных, а также прозрачный доступ к данным с других сайтов.  Затем, создается рабочее пространство Synapse Analytics, скажем, в западной части США (если здесь расположена штаб-квартира) и у Cosmos Db в западной части США  есть активированное аналитическое хранилище. 

И вот тут происходит волшебство.  Поскольку настроен мульти-мастер между Западной частью США, Германией и Японией, это означает, что аналитическое хранилище в копии в западной части США будет содержать данные всех трех глобальных сайтов.  Рабочее пространство Synapse просто подключается к аналитическому хранилищу и запрашивать данные без какой-либо зависимости и переживания о действительном месте возникновения этих данных.  Это все достигается только с помощью конфигурации службы, без кодирования. 

Архитектура

Здесь показано, как это может быть спроектировано в Azure:

В данном примере базы данных Cosmos Db используются для операционных данных с сайтов по всему миру, а Spark - для аналитики в западной части США. Заметьте, здесь помещена только одна копия Synapse для наглядной иллюстрации, но технических ограничений нет.  При желании, можно добавить Synapse во все три сайта и обеспечить самое низкое время отклика, там, где находятся все пользователи.  Как только данные становятся доступны в виде таблицы Spark, можно использовать все, что хотите для их запроса или визуализации: Power BI, Tableau, Looker и т.д. 

Как видите, все это - платформа как служба, ни одна часть инфраструктуры не должна управляться клиентом. Это означает не только низкий входной барьер для такого типа решения, но также, что подобное решение доступно и достижимо для всех типов малых и средних предприятий.  Только подумайте: еще 5 лет назад мысль о широком распространении Глобальной Аналитики была чем-то невероятным! 



No Comments

Add a Comment