Что такое synapse платформа
Четыре примера использования Azure Synapse
Azure Synapse
Microsoft расширяет экосистему с помощью Azure Synapse. По мере развертывания, данные проектируются как единая платформа, а Power BI является частью платформы.
Synapse предоставляет полную защиту.
Решение для проектирования данных low code.
Существует множество компонентов Azure, которые Вы можете использовать для создания хорошо спроектированного конвейера данных. Azure Synapse объединяет все эти инструменты в одном портале. Например, использование фабрики данных Azure, а затем запись данных в озеро данных. Сбор данных и запрос неструктурированных файлов например, с помощью SQL или Spark. Фабрика данных Azure также имеет встроенные функции, которые могут упростить создание озера данных и управление с помощью составления карты потоков данных.
Дополнительные вычислительные опции.
Больше не нужно выбирать между SQL и Spark. Мы можем использовать подготовленный SQL, который ранее был DWH Azure. Synapse предлагает SQL по запросу и вычислительные модули Spark. Именно здесь мы видим, как отделяется уровень хранения данных от вычислительного уровня. Это означает, что Azure Data Lake Gen2 служит хранилищем, а SQL и Spark-вычислительными системами.
Одно место для всей информации
Будь то фабрика данных Azure, Spark, SQL или Power BI Synapse теперь стал единым порталом для интеграции всех этих сервисов. В целом это упрощает работу и управление всеми вашими конвейерами данных.
4 примера использования Azure Synapse
Пример №1
С помощью Azure Synapse, Aggreko улучшила срок анализа данных, уменьшив сложность приема и увеличив скорость. Время приема сократилось с четырех часов до менее чем пяти минут. Это, в свою очередь, означало, что для Aggreko данные теперь доступны для аналитических конвейеров почти в режиме реального времени (с задержкой менее пяти минут). Команда также подсчитала, что они сэкономили 30-40 процентов своего времени, которое было потрачено на решение технологических проблем в устаревших системах. Благодаря внедрению Azure Synapse данные теперь доступны для мгновенного изучения, а это означает, что у команды Aggreko есть больше времени, чтобы сосредоточиться на решении бизнес-задач.
Пример №2
Clearsale, ведущая бразильская компания по обнаружению мошенничеств, использовала Azure Synapse для модернизации платформы оперативной аналитики данных. Ежедневно компания помогает клиентам проверять в среднем полмиллиона транзакций, используя аналитику больших данных с целью выявления подлогов по всему миру. Набор данных Clearsale удваивается каждые два года, при этом компания должна предоставлять услуги в течение нескольких секунд. Это требует большого уровня масштабируемости и производительности:
С помощью Azure Synapse Clearsale сократила время, необходимое для обучения новых моделей для улучшения процесса обнаружения мошенничества. Использование старой локальной платформы требовало 7 дней для приема, подготовки и обучения модели машинного обучения. С помощью Azure Synapse этот показатель сократился до менее чем шести часов. Такое улучшение повысило эффективность и снизило операционные расходы.
Пример №3
Пример №4
Представьте себе крупную транснациональную розничную компанию, у которой магазины в Австралии, Новой Зеландии и Японии. Здесь продаются потребительские товары, электроника и предметы личной гигиены. Аналитика данных нужна компании для создания представления о своих клиентах. Цель состоит в повышении качества обслуживания и увеличении прибыли. Чтобы добиться этого, команда по анализу данных приняла Azure Synapse в качестве подходящей платформы для достижения поставленной цели:
Azure Synapse позволила группе обработки данных объединить свои данные, разработчиков и бизнес-пользователей способами, которые ранее были невозможны. Azure Synapse упростила прием и обработку данных, организацию хранения все операционные и исторические данные, которые могут быть обновлены почти в режиме реального времени. Azure Synapse также упростила исследование и обнаружение данных без необходимости преобразования данных из одного формата в другой или перемещения их в другие системы.
В современных условиях у организаций должно быть четкое представление о результатах деятельности в режиме реального времени для постоянного развития.
Azure Synapse предлагает безграничный, унифицированный, мощный аналитический сервис, который позволяет компаниям начинать с малого и масштабироваться по мере необходимости. Вы платите только за то, что используете, и только тогда, когда вам это нужно.
Platform V Synapse File Exchange
Компонент «Файловая передача Platform V Synapse File Exchange» предназначен для файловой интеграции бизнес-сервисов Платформы между собой, а также с системами вне Платформы.
Сервис Файловая передача выполняет передачу приложению-адресату уведомление о файлах и транзакционный ключ, зашифрованный публичным ключом приложения-адресата, а также реализует передачу файлов по протоколу gRPC через API.
Ниже представлена таблица компонентов сервиса.
Компонент | Описание |
---|---|
Ingress-gateway | Компонент определяет точки входа в mesh, через которые проходит весь входящий трафик |
Egress-gateway | Компонент определяет точки выхода из mesh, через которые проходит весь исходящий трафик |
Fluent-bit логгер | Компонент логирует данные пода, которые приложение должно отбрасывать в файл. По умолчанию компонент отправляет логи в Kafka |
Service Account | Служебный аккаунт, предоставляющий гибкий способ управления доступом к API |
Этапы сервиса
Передача файлов по протоколу gRPC, используя API, выполняется в следующей последовательности:
Оповещение приложения о доступных для получения файлах с дешифрованным транзакционным ключом по протоколу gRPC выполняется в следующей последовательности:
Передача файлов приложению-адресату по протоколу gRPC, используя API, выполняется в следующей последовательности:
Организация мониторинга Synapse
Для организации мониторинга Synapse используются Kiali, Kibana, Jaeger, Grafana.
Kiali
Kiali – компонент для работы с Istio для визуализации топологии service mesh (микросервисы и их взаимосвязь).
Jaeger
Jaeger представляет собой распределенную систему отслеживания c открытым исходным кодом. Используется для мониторинга и устранения неполадок распределенных систем на основе микросервисов.
В отличие от Zipkin, Jaeger нативно поддерживает key-value logging. Трейсы представлены как направленный ациклический граф (DAG), а не просто дерево спанов.
Grafana
Grafana – платформа с открытым исходным кодом для визуализации, мониторинга и анализа данных. Grafana позволяет пользователям создавать дашборды с панелями, каждая из которых отображает определенные показатели в течение установленного периода времени. Каждый дашборд универсален, его можно настроить для конкретного проекта или с учетом любых потребностей разработки.
Kibana
Kibana – это плагин для визуализации данных с открытым исходным кодом для Elasticsearch. Запустить Kibana можно локально, в Amazon EC2 или в сервисе Amazon Elasticsearch. Kibana предоставляет возможности визуализации и поиска данных, проиндексированных в кластере Elasticsearch. Kibana используется в основном для анализа сообщений журнала.
В поисках идеального хранилища документов
Все началось в 2001 году, когда интернет только начинал свое победное шествие, и появился неограниченный доступ к огромной библиотеке знаний. Мы жадно скачивали электронные версии книг и статей. Всё! Всё, что что могло быть полезным в самообразовании. В первую очередь нас, конечно, интересовало программирование, электроника и механика, но биологией, медициной, химией и прочим мы тоже не брезговали. Таким образом, у каждого стала формироваться персональная электронная библиотека.
Но мы быстро столкнулись с проблемой систематизации знаний. Выяснилось, что файловая система не очень подходит для этих целей. Первым признаком стал процесс дублирования каталогов.
Затем папка ‘Разобрать’ превратилась в подобие черной дыры. В нее стали попадать все документы, которые было сложно отнести к какой-либо категории.
Первое, что пришло в голову – помещать копии документа одновременно в несколько каталогов. Но и это тоже оказалось не особо удобно: структура каталогов становилась все запутаннее и запутаннее.
Гораздо проще перечислить категории или указать теги, ассоциируемые с содержанием документа/файла, тем более что этот процесс можно автоматизировать. И это круто, т.к. позволяет задействовать ассоциативное мышление, которое гораздо проще классификации. Но абсолютно не понятно, как визуализировать список тегов и производить поиск по документам.
В 2014 году (эту дату имеют первые эскизы) были предложены две гипотезы:
если один документ относится к двум и более тегам (категориям), значит эти теги связаны
если сохранить несколько документов, то используя меру сходства можно вычислить связи между тегами и построить карту тегов (граф)
Прорабатывая эти идеи, мы поняли, что получается что-то очень интересное: персонализированная графовая база данных, в которой решена проблема описания связей. Используя эти концепции можно построить систему хранения информации, работающую на новых принципах. Для проверки работоспособности идеи были нарисованы скетчи интерфейса и начата разработка прототипа.
Изначально мы делали Desktop-приложение на C++, но потом отказались от него и разработали web-сервис. Online-приложение проще распространять, обновлять и поддерживать силами небольшой команды в условиях ограниченного финансирования. К сожалению, мы поняли это достаточно поздно, поэтому на разработку работающего прототипа ушло несколько лет. Теперь мы можем дать совет “web application is the first” или всегда делайте сначала web-приложение.
Тем не менее, мы получили неоценимый опыт, а также существенный задел, который пригодится в будущем. Ведь мы не отказались от desktop-приложения и обязательно его выпустим в случае успеха нашего проекта.
Как сейчас это работает?
Каждому сохраняемому документу автоматически предлагается последовательность тегов, которая ассоциируется с содержимым документа. Пользователь может редактировать эту последовательность добавлять и удалять свои теги. На рисунке ниже приведен пример сохранения веб-странички при помощи плагина для браузера.
Затем мы вычисляем расстояние связи между тегами и представляем результаты в виде карты тегов, которая по сути является графическим отображением ваших знаний.
При выборе тега на карте происходит фильтрация списка документов, обеспечивая поиск необходимой информации.
Мы сами пользуемся нашим приложением. Причем чем больше документов сохраняешь, тем более интересную информацию можно получить из карты тегов. Думаю, что это может стать отличной темой для следующей статьи.
Техническая часть
Несмотря на кажущуюся простоту наш проект технологически достаточно сложен. Основная инфраструктура (IaaS) “крутится” в собственном облаке, построенном на базе OpenStack, развернутом на 3-х серверах Intel.
Для стартапа, конечно, логичнее использовать готовое облако, а не тратить ресурсы на разворачивание своего. Однако, на момент начала проекта у нас уже было свое железо и опыт развертывания подобных систем. Мы придерживались правила: используй технологии с которыми хорошо знаком. К тому же собственное облако в нашем случае имело ряд преимуществ:
соответствие требованиям 152-ФЗ;
данные принадлежат нам, а не 3-й стороне
оперативное взаимодействие с командой, занимающейся инфраструктурой (кто работал с Amazon поймут)
дешевле (в нашем случае)
возможность использования инфраструктуры в других проектах.
Стоит отметить, что часть инфраструктуры, все же работает в облаках Amazon и российского провайдера SprintHost. Там “крутятся” вторичный DNS, почта, мониторинг и другие вспомогательные сервисы, делая нашу систему более распределенной и надежной.
На следующем уровне (PaaS) работают web-сервера и базы данных. Мы еще занимаемся строительством этого уровня: не решена задача автоматического масштабирования, шардирования и т.д. Но мы работаем над этим. Если бы мы использовали Amazon, большая часть задач была бы решена, но за это пришлось бы заплатить технологической зависимостью от сервис-провайдера в будущем. В общем, это достаточно холиварная тема даже среди нашей команды.
На третьем уровне (SaaS) работает уже сам сервис Synaps, построенный по принципу микро-сервисов, где каждую задачу решает маленькое приложение. Эти приложения общаются между собой через API, решая единую задачу. Такой подход позволяет независимо менять модули, сохраняя работоспособность всей системы. Выбор конкретных технологий в этом случае был так же обусловлен имеющимися компетенциями в команде, поэтому большая часть сервисов написана на языке php и python.
Часть сервисов предоставляют публичный REST API, посредством которого осуществляется взаимодействие с клиентским ПО. Например, сайт с пользовательским интерфейсом thesynaps.com является клиентом и не содержит никаких данных. Второй клиент – это плагины для браузеров. Их задача упростить процесс сохранения web-страниц в хранилище Synaps.
Внедрение и перспективы
На данный момент у нас полноценно работает прототип (MVP), позволяющий работать с ссылками на web-ресурсы (закладки). Он показал не только возможность реализации системы ассоциативного хранения данных, но и позволил получить первых пользователей, полностью отказавшихся от альтернативных инструментов работы с web-закладками.
Сейчас мы реализуем наиболее востребованный пользователями функционал в сервисе работы с web-закладками. Так недавно был добавлен механизм импорта/экспорта, на основе ElasticSearch реализовано автоматическое распознавание тегов при добавлении нового документа и т.д.
Мы планируем расширять нашу аудиторию, предоставляя самый удобный бесплатный сервис работы с web-закладками. Надеемся, что приложение будет востребовано среди продвинутых пользователей и разработчиков. Мы оцениваем российский рынок не менее чем в 500 тыс. человек с потенциалом роста 3-5% в год.
Но настоящее будущее нашего продукта мы все же видим в работе с файлами и документами. Работы в этом направлении ведутся уже давно. Основой должно стать кроссплатформенное приложение, с которого начинался наш проект. Это приложение будет синхронизироваться с сервисом посредством REST API и способно работать offline.
Вместо заключения
Если вы дочитали до этого места, значит тема статьи для вас актуальна. Потратьте еще 30 секунд и попробуйте наш сервис (пока только online и только закладки): https://thesynaps.com.
Будем признательны дельным комментариям. Нам крайне важно мнение хабровчан стоит ли дальше развивать этот проект?
Создание рабочей области Synapse
Из этого учебника вы узнаете, как создать рабочую область Synapse, выделенный пул SQL и бессерверный пул Apache Spark.
Предварительные требования
Чтобы выполнить все действия, описанные в этом учебнике, потребуется доступ к группе ресурсов, которой назначена роль Владелец. Создайте рабочую область Synapse в этой группе ресурсов.
Создание рабочей области Synapse на портале Azure
Начало процесса
сведения о Project вкладке «основы» >
Заполните следующие поля:
>Сведения о рабочей области вкладки «основные»
Заполните следующие поля:
Рабочая область, не связанная с клиентскими приложениями или хранилищем, может являться основной причиной множества проблем с производительностью. Если ваши данные или клиенты размещены в нескольких регионах, вы можете создавать отдельные рабочие области в разных регионах, размещенные вместе с вашими данными и клиентами.
В разделе Выбор Data Lake Storage 2-го поколения:
Завершение процесса
Выберите Проверка + создать создать. Рабочая область будет готова через несколько минут.
Сведения о том, как использовать функции рабочей области из существующего выделенного пула SQL (ранее — Хранилище данных SQL), см. здесь.
Открытие Synapse Studio
После создания рабочей области Azure Synapse можно открыть Synapse Studio двумя способами:
Откройте рабочую область Synapse на портале Azure и в ее разделе Обзор выберите элемент Открыть в поле Open Synapse Studio (Открыть Synapse Studio).
Перейдите по адресу https://web.azuresynapse.net и войдите в рабочую область.
Для входа в рабочую область существует два метода выбора учетной записи. Один для подписки Azure, а другой для ручного ввода. При наличии роли Azure Synapse или ролей более высокого уровня вы можете использовать оба способа входа в рабочую область. Если у вас нет связанных ролей Azure и вам назначили роль RBAC в Synapse, ручной ввод является единственным способом входа в рабочую область. Дополнительные сведения о RBAC в Synapse см. в разделе Что такое управление доступом на основе ролей в Synapse (RBAC)?.
Размещение данных примера в основной учетной записи хранения
В контексте многих примеров, приведенных в данном руководстве по началу работы, мы будем использовать небольшую выборку данных из 100 тыс. строк данных такси NYX. Мы начнем с его размещения в основной учетной записи хранения, созданной вами для рабочей области.
После загрузки файла Parquet он доступен через два эквивалентных URI:
В контексте примеров, приведенных в данном руководстве, не забудьте заменить contosolake в пользовательском интерфейсе именем основной учетной записи хранения, которую вы выбрали для своей рабочей области.
Synapse неплохая альтернатива для Alt+F2
Synapse — это весьма приятный лаунчер, с довольно интересными плюшками.
Итак, перечислим возможности которые имеются при стандартном наборе плагинов (да да плагинов, вы не ослышались):
* Запуск приложений
* Banshee – воспроизведение музыки в Banshee
* Выполнение команд (прим. “sudo apt-get update”)
* Devhelp – поиск документации с помощью Devhelp
* Dictionary – находит определения слов
* Directory search – открывание папок
* Gnome session – log out, shut down, restart
* Hybrid search – поиск схожих файлов
* Rhytmbox – воспроизведение музыки в Rhythmbox
* UPower – усыпить или гиберировать ваш комп
* Zeitgeist – sпоиск с помощью Zeitgeist
Так же есть поддержка тем, на любой вкус и цвет.
Кстати по умолчанию он вызывается сочетанием Ctrl + Space.
Установка Синапса:
sudo add-apt-repository ppa:synapse-core/ppa
sudo apt-get update
sudo apt-get dist-upgrade #нужно только для Lucid
sudo apt-get install synapse
Так как данный лаунчер использует данные Zeitgeist, то неплохо бы установить его:
sudo add-apt-repository ppa:zeitgeist/ppa
sudo apt-get update
sudo apt-get install zeitgeist-datasource-bzr zeitgeist-datasource-emacs zeitgeist-datasource-eog zeitgeist-datasource-geany zeitgeist-datasource-gedit zeitgeist-datasource-rhythmbox zeitgeist-datasource-totem zeitgeist-datasource-vim
Ну и для полной ляпоты, поставим расширение FTS Zeitgeist
Для Maverick:
sudo apt-get install zeitgeist-fts-extension
Для Lucid:
sudo apt-get install zeitgeist-extension-fts