Что такое Azure Synapse Link для Azure Cosmos DB?
Azure Synapse Link для Azure Cosmos DB — это облачная гибридная транзакционно-аналитическая возможность обработки (HTAP), которая обеспечивает аналитику операционных данных в Azure Cosmos DB почти в реальном времени. Azure Synapse Link обеспечивает тесную эффективную интеграцию между Azure Cosmos DB и Azure Synapse Analytics.
При использовании аналитического хранилища Azure Cosmos DB, полностью изолированного хранилища столбцов, Azure Synapse Link, не позволяет реализовать аналитику извлечения, преобразования и загрузки (ETL) в Azure Synapse Analytics к вашим операционным данным при заданном масштабе. Бизнес-аналитики, инженеры по данным и специалисты по обработке и анализу данных теперь могут взаимозаменяемым образом использовать Synapse Spark или Synapse SQL для выполнения конвейеров бизнес-аналитики, аналитики и машинного обучения практически в реальном времени. Этого можно добиться, не влияя на производительность транзакционных рабочих нагрузок на Azure Cosmos DB.
На следующем рисунке показана интеграция Azure Synapse Link с Azure Cosmos DB и Azure Synapse Analytics:
Преимущества
Чтобы анализировать большие наборы операционных данных и свести к минимуму влияние на производительность критически важных рабочих нагрузок, обычно операционные данные в Azure Cosmos DB извлекаются и обрабатываются конвейерами извлечения и преобразования (ETL). Для конвейеров ETL требуется перемещение многих уровней данных, что значительно усложняет рабочую нагрузку и влияет на производительность транзакций. Также увеличивается задержка для анализа операционных данных от начального момента.
По сравнению с традиционными решениями на основе ETL, Azure Synapse Link для Azure Cosmos DB предлагает следующие преимущества:
Уменьшение сложности без необходимости управления заданиями ETL
Azure Synapse Link позволяет получить прямой доступ к аналитическому хранилищу Azure Cosmos DB с помощью Azure Synapse Analytics без сложного перемещения данных. Любые обновления, вносимые в операционные данные, отображаются в аналитическом хранилище почти в реальном времени без заданий ETL или веб-канала изменений. Вы можете запускать крупномасштабную аналитику в аналитическом хранилище из Azure Synapse Analytics без дополнительного преобразования данных.
Анализ операционных данных почти в реальном времени
Теперь вы можете получать подробные сведения о операционных данных почти в реальном времени, используя Azure Synapse Link. Системы на основе ETL, как правило, характеризуются более высокой задержкой во время анализа ваших операционных данных из-за наличия множества уровней, необходимых для извлечения, преобразования и загрузки операционных данных. С помощью собственной интеграции аналитического хранилища Azure Cosmos DB с Azure Synapse Analytics можно анализировать операционные данные почти в реальном времени, обеспечивая новые бизнес-сценарии.
Без влияния на операционные рабочие нагрузки
С помощью Azure Synapse Link вы можете выполнять аналитические запросы к аналитическому хранилищу Azure Cosmos DB — представлению ваших данных в виде хранилища столбцов, при этом транзакционные операции будут обрабатываться с использованием подготовленной пропускной способности для транзакционной рабочей нагрузки в хранилище транзакций на основе строк Cosmos DB. Аналитическая рабочая нагрузка не зависит от трафика транзакционной рабочей нагрузки и не потребляет подготовленную пропускную способность ваших операционных данных.
Оптимизация для крупномасштабных аналитических рабочих нагрузок
Аналитическое хранилище Azure Cosmos DB оптимизировано для обеспечения масштабируемости, эластичности и производительности для аналитических рабочих нагрузок без какой-либо зависимости от времени выполнения вычислений. Технология хранения самостоятельно оптимизирует аналитические рабочие нагрузки. Благодаря встроенной поддержке Azure Synapse Analytics доступ к этому уровню хранилища обеспечивает простоту и высокую производительность.
Экономичность
С помощью Azure Synapse Link вы можете получить экономичное и полностью управляемое решение для операционной аналитики. Он исключает дополнительные уровни хранилища и вычислений, необходимые в традиционных конвейерах ETL для анализа операционных данных.
Аналитическое хранилище Azure Cosmos DB соответствует модели ценообразования на основе потребления, связанной с хранением данных, а также аналитическими операциями чтения и записи и выполняемыми запросами. Пропускную способность, как для транзакционных рабочих нагрузок, подготавливать не требуется. Доступ к данным с помощью высокоэластичных подсистем вычислений из Azure Synapse Analytics обеспечивает снижение общей стоимости хранения и вычислений.
Аналитика для локально доступных, глобально распределенных записей для нескольких регионов
Это позволяет эффективно выполнять аналитические запросы по отношению к ближайшей региональной копии ваших данных в Azure Cosmos DB. Azure Cosmos DB предоставляет современные возможности для выполнения глобальных распределенных аналитических рабочих нагрузок вместе с транзакционными рабочими нагрузками в режиме «активный — активный».
Включение сценариев HTAP для операционных данных
Synapse Link объединяет аналитическое хранилище Azure Cosmos DB с поддержкой среды выполнения Azure Synapse Analytics. Такая интеграция позволяет создавать собственные облачные решения HTAP (гибридной транзакционной/аналитической обработки), которые формируют аналитические данные на основе обновлений в режиме реального времени для операционных данных из больших наборов данных. Она позволяет реализовать новые бизнес-сценарии для создания оповещений на основе тенденций, создания панелей мониторинга почти в реальном времени и бизнес-опыта на основе поведения пользователя.
Аналитическое хранилище Azure Cosmos DB
Аналитическое хранилище Azure Cosmos DB — это представление операционных данных в Azure Cosmos DB, ориентированное на столбцы. Это аналитическое хранилище подходит для быстрого и экономичного выполнения запросов к большим наборам операционных данных без копирования данных и влияния на производительность транзакционных рабочих нагрузок.
Аналитическое хранилище автоматически фиксирует часто выполняющиеся операции вставки, обновления и удаления в ваших транзакционных рабочих нагрузках практически в реальном времени благодаря полностью управляемому компоненту (автоматическая синхронизация) Azure Cosmos DB. Нет необходимости в канале изменений или ETL.
Если вы используете глобально распределенную учетную запись Azure Cosmos DB, после включения аналитического хранилища для контейнера он будет доступен во всех регионах для этой учетной записи. Дополнительные сведения об аналитическом хранилище см. в статье Обзор аналитического хранилища Azure Cosmos DB.
Интеграция с Azure Synapse Analytics
С помощью Synapse Link теперь можно подключаться непосредственно к контейнерам Azure Cosmos DB из Azure Synapse Analytics и обращаться к аналитическому хранилищу без отдельных соединителей. В настоящее время Azure Synapse Analytics поддерживает Synapse Link с Synapse Apache Spark и бессерверный пул SQL.
Данные из аналитического хранилища Azure Cosmos DB можно запрашивать одновременно, при этом взаимодействие выполняется с разным временем выполнения аналитики, поддерживаемой Azure Synapse Analytics. Для анализа операционных данных не требуются дополнительные преобразования данных. Вы можете запрашивать и анализировать данные аналитического хранилища с помощью следующих средств.
Synapse Apache Spark с полной поддержкой Scala, Python, SparkSQL и C# (Synapse Spark — это основное средство для инжиниринга, обработки и анализа данных);
Бессерверный пул SQL с языком T-SQL и поддержкой знакомых средств бизнес-аналитики (например, Power BI Premium и т. п.).
Из Azure Synapse Analytics можно получить доступ к аналитическим и транзакционным хранилищам в контейнере Azure Cosmos DB. Тем не менее, если вы хотите выполнять крупномасштабную аналитику или сканируете операционные данные, рекомендуется использовать аналитическое хранилище, чтобы избежать снижения производительности в транзакционных рабочих нагрузках.
Вы можете запустить аналитику с низкой задержкой в регионе Azure, подключив контейнер Azure Cosmos DB к среде выполнения Synapse в этом регионе.
Такая интеграция позволяет выполнять следующие сценарии HTAP для разных пользователей:
Инженер бизнес-аналитики, который хочет смоделировать и опубликовать отчет Power BI, чтобы получить доступ к текущим операционным данным в Azure Cosmos DB напрямую через Synapse SQL.
Аналитик данных, который хочет получить ценную информацию из операционных данных в контейнере Azure Cosmos DB, отправив запрос с помощью Synapse SQL, прочитать данные в большом масштабе и объединить эти результаты с другими источниками данных.
Специалист по обработке и анализу данных, который хочет использовать Synapse Spark, чтобы найти признак для улучшения своей модели и обучения этой модели без сложного инжиниринга данных. Они также могут записывать результаты моделирования в Azure Cosmos DB для оценки данных в режиме реального времени с помощью Spark Synapse.
Инженер данных, который хочет сделать данные доступными для потребителей, создавая таблицы SQL или Spark в контейнерах Azure Cosmos DB без процессов ETL, выполняемых вручную.
Дополнительные сведения о поддержке Azure Cosmos DB в среде выполнения Azure Synapse Analytics см. в статье Поддержка Azure Synapse Analytics для Cosmos DB.
Когда нужно использовать Azure Synapse Link для Azure Cosmos DB
Synapse Link рекомендуется в следующих случаях:
Если вы являетесь клиентом Azure Cosmos DB и хотите использовать аналитику, бизнес-аналитику и машинное обучение для своих операционных данных. В таких случаях Synapse Link предоставляет более интегрированную аналитическую среду, не влияя на подготовленную пропускную способность хранилища транзакций. Пример:
Если вы используете аналитику или бизнес-аналитику для операционных данных Azure Cosmos DB прямо сейчас, используя отдельные соединители.
Если вы используете процессы ETL для извлечения операционных данных в отдельную систему аналитики.
В таких случаях Synapse Link предоставляет более интегрированную аналитическую среду, не влияя на подготовленную пропускную способность хранилища транзакций.
Synapse Link не рекомендуется использовать, если вы ориентируетесь на традиционные требования к хранилищу данных, такие как высокий уровень параллелизма, управление рабочей нагрузкой и сохранение статистических выражений в нескольких источниках данных. Дополнительные сведения см. в разделе Распространенные сценарии, которые могут быть реализованы с помощью Azure Synapse Link для Azure Cosmos DB.
Ограничения
Azure Synapse Link для Azure Cosmos DB поддерживается для API SQL и API Azure Cosmos DB для MongoDB. Эта возможность не поддерживается для API Gremlin, API Cassandra и API таблиц.
Доступ к хранилищу аналитики Azure Cosmos DB с помощью выделенного пула SQL Azure Synapse сейчас не поддерживается.
Включение Synapse Link для существующих контейнеров Cosmos DB поддерживается только для учетных записей API SQL. В новых контейнерах Synapse Link можно включить для учетных записей API SQL и API MongoDB.
Возможность резервного копирования и восстановления данных в аналитическом хранилище сейчас не поддерживается. Аналитические данные можно воссоздать в некоторых сценариях, которые указаны в приведенной ниже таблице.
- Azure Synapse Link и режим периодического резервного копирования могут использоваться совместно для одной учетной записи базы данных. В этом режиме будут автоматически сохраняться данные о транзакциях. Но данные аналитического хранилища не включаются в резервные копии и не могут быть восстановлены из них. Если вы используете значение transactional TTL больше, чем настроенное для контейнера значение analytical TTL , то сможете полностью воссоздать данные аналитического хранилища, снова настроив его для восстановленного контейнера. Обратите внимание, что в настоящее время аналитическое хранилище можно восстановить только в восстановленных контейнерах API SQL.
- Возможность совместного использования Synapse Link и режима непрерывного резервного копирования (восстановление до точки времени) в одной и той же учетной записи базы данных не поддерживается. Если вы включите режим непрерывного резервного копирования, то не сможете включить Synapse Link, и наоборот.
Возможность использования доступа на основе ролей (RBAC) при выполнении запросов с использованием бессерверных пулов Synapse SQL не поддерживается.
Безопасность
Synapse Link позволяет почти в реальном времени выполнять аналитику критически важных данных в Azure Cosmos DB. Крайне важно убедиться, что важные бизнес-данные безопасно хранятся как в транзакционных хранилищах, так и в хранилищах аналитических данных. Средство Azure Synapse Link для Azure Cosmos DB предназначено для соблюдения этих требований безопасности с помощью следующих функций.
Сетевая изоляция с использованием частных конечных точек. Сетевым доступом к данным в транзакционных хранилищах и хранилищах аналитических данных можно управлять независимо друг от друга. Сетевая изоляция выполняется с помощью отдельных управляемых частных конечных точек для каждого хранилища в пределах управляемых виртуальных сетей в рабочих областях Azure Synapse. Дополнительные сведения см. в статье Настройка частных конечных точек для хранилища аналитических данных.
Шифрование с использованием ключей, управляемых клиентом. Можно легко автоматически и прозрачно шифровать данные в транзакционных хранилищах и хранилищах аналитических данных, используя одни и те же ключи, управляемые клиентом. Azure Synapse Link поддерживает только настройку ключей, управляемых клиентом, с помощью управляемого удостоверения учетной записи Azure Cosmos DB. Вам нужно настроить управляемое удостоверение учетной записи в политике доступа Azure Key Vault до того, как вы включите Azure Synapse Link в своей учетной записи. Дополнительные сведения см. в статье Настройка ключей, управляемых клиентом, с помощью управляемых удостоверений учетных записей Azure Cosmos DB.
Безопасное управление ключами. Доступ к данным в хранилище аналитических данных из Synapse Spark и бессерверных пулов SQL требует управления ключами Azure Cosmos DB в рабочих областях Synapse Analytics. Azure Synapse Link предоставляет более безопасные возможности, чем использование ключей учетной записи Azure Cosmos DB в заданиях Spark или скриптах SQL.
При использовании бессерверных пулов SQL в Synapse можно запросить хранилище аналитических данных Azure Cosmos DB, путем заблаговременного создания удостоверений SQL, хранящих ключи учетной записи, и использования ссылок на них в функции OPENROWSET . Дополнительные сведения см. в статье Запрос с использованием бессерверного пула SQL Azure Synapse Link.
При использовании Synapse Spark можно хранить ключи учетных записей в связанных объектах службы, указывающих на базу данных Azure Cosmos DB, и ссылаться на них в конфигурации Spark во время выполнения. Дополнительные сведения см. в статье Копирование данных в выделенный пул SQL с помощью Apache Spark.
Модель выставления счетов по Azure Synapse Link включает в себя затраты, связанные с использованием аналитического хранилища Azure Cosmos DB и среды выполнения Synapse. Дополнительные сведения см. в статьях Цены на аналитическое хранилище Azure Cosmos DB и Цены на Azure Synapse Analytics.
Что такое synapse интеграция
Apache Synapse Enterprise Service Bus (ESB)
Apache Synapse is a lightweight and high-performance Enterprise Service Bus (ESB). Powered by a fast and asynchronous mediation engine, Apache Synapse provides exceptional support for XML, Web Services and REST. In addition to XML and SOAP, Apache Synapse supports several other content interchange formats, such as plain text, binary, Hessian and JSON. The wide range of transport adapters available for Synapse, enables it to communicate over many application and transport layer protocols. As of now, Apache Synapse supports HTTP/S, Mail (POP3, IMAP, SMTP), JMS, TCP, UDP, VFS, SMS, XMPP and FIX.
Apache Synapse is free and open source software distributed under the Apache Software License 2.0. Apache Synapse, Synapse, Apache, the Apache feather logo, and the Apache Synapse project logo are trademarks of The Apache Software Foundation
Version 3.0.1
New in Version 3.0.0
- High-performing PassThrough HTTP transport support for all mediation scenarios
- Ultra-fast, low latency mediation of HTTP requests
- Supporting a very large number of inbound (client -> ESB) and outbound (ESB -> server) connections concurrently
- Intelligently handle message content and content awareness built into the engine with shared buffer for handling data
- Automatic throttling and graceful performance degradation in the presence of slow or faulty clients and servers
- Support for adding/removing transport headers
- url-encode xpath function
- Access system properties from get-property function
- base64 decode function
- Resequencing Message Processor
- New blocking client implementation
- Support for injecting a message to Proxy services
- Support for injecting a message to named sequences
- Support for WS-Security
- Inline Endpoint support
- Ability to dynamically set the EPR using ‘To’ header
- NTLM support
- Support for removing properties
- Transport level access restriction
Key Features
- Proxy services — facilitating transport, interface (WSDL/Schema/Policy), message format (SOAP 1.1/1.2, POX/REST, Text, Binary), QoS (WS-Addressing/ WS-Security/WS-RM) and optimization switching (MTOM/SwA)
- Non-blocking HTTP/S transports for fast HTTP interactions and support for thousands of concurrent connections
- VFS transport for file manipulation and interaction with FTP, SFTP, CIFS and WEBDAV
- JMS support for binary, plain text, XML and SOAP payloads
- Mail transport with extensive support for POP3, IMAP and SMTP
- Support for industry driven Financial Information eXchange (FIX) protocol
- Built-in Registry/Repository, facilitating dynamic reloading of the configuration and associated resources (e.g. XSLTs, XSD, JS, ..)
- Built-in support for scheduling tasks using the Quartz scheduler
- Load-balancing (with or without sticky sessions) and fail-over routing
- Support for many Web Services standards including WS-Addressing, WS-Security and WS-Reliable Messaging
- Policy based message throttling and caching (with special support for clustered environments)
- Message splitting and aggregation
- Database lookup and update support with database connection pooling
- Fine grained statistics collection over sequences, endpoints and proxy services
- JMX monitoring and management
- Easily extendable with Java, Spring, or BSF Scripting languages (Javascript, Ruby, Groovy, etc.)
High Level Architecture
Apache Synapse is designed to be lightweight and fast. The non-blocking HTTP transport, the multi-threaded mediation engine and the streaming XML infoset combine to ensure that Synapse can mediate very high volumes of messages through the service bus with minimum delay and resource usage. Synapse also comes with comprehensive logging capabilities, statistics collection and JMX monitoring support which are crucial in production deployments.
Synapse uses Apache Axis2 as the underlying Web Services engine. Therefore it has outstanding support for Web Services and related standards such as SOAP and WSDL. Tried and tested Axis2 modules like Apache Rampart and Apache Sandesha2 can be used with Synapse with no configuration overhead. Using such external modules, Apache Synapse supports a range of Web Services standards including WS-Security and WS-Reliable Messaging. Synapse also makes use of the Axis2 clustering framework to provide enterprise grade clustering support.
Synapse is configured using a simple, XML-based configuration language. The configuration language and the related functional components are designed with SOA best practices in mind. It is trivial to store configuration fragments in an external SOA registry and import them to the mediation engine on demand. Synapse ships with a large collection of mediators that can be used to implement even the most complex enterprise integration scenarios. If necessary, the mediation engine can be extended by developing custom mediators using Java or your favorite scripting language.
Synapse
По состоянию на 2020 год в Сбербанке ведется разработка инновационного интеграционного решения Synapse. В описании вакансий разработчиков в этот проект перечислены некоторые его детали.
Вот всего лишь несколько причин, почему стоит присоединиться к нашей команде:
— это шанс использовать самые современные software технологии и архитектурные паттерны;
— это возможность получить навык работы в облачной архитектуре с использованием OpenShift, Kubernetes, Istio, Envoy;
— это опыт создания нового интеграционного решения, на которое должна быть переведена вся интеграционная логика Банка.
Результатом твоих трудов станет решение, которое позволит выйти Банку выйти на новый уровень реализации интеграционной логики и значительно сократить время вывода новых продуктов!