Azure Synapse Analytics для хранения больших данных
Рост унифицированных аналитических платформ
Современные предприятия генерируют огромные объемы данных из транзакционных систем, IoT-устройств, социальных сетей и операционных приложений. Традиционные хранилища данных борются за разнообразие и скорость этой информации, в то время как отдельные хранилища больших данных создают проблемы фрагментации и управления. Azure Synapse Analytics решает эту проблему, предоставляя единую аналитическую услугу, которая объединяет обработку больших данных и хранение данных под одним уровнем управления. Построенная на облаке Azure от Microsoft, она позволяет организациям принимать, готовить, управлять и обслуживать данные для бизнес-аналитики, машинного обучения и передовых аналитических рабочих нагрузок без необходимости объединять несколько инструментов.
Основные возможности Azure Synapse Analytics
Azure Synapse разработан как сервис безграничной аналитики, который отделяет вычисления от хранения, позволяя независимо масштабировать ресурсы. Он объединяет движки больших данных, такие как Apache Spark, с корпоративным хранилищем данных через выделенные пулы SQL и безсерверный SQL. Эта конвергенция означает, что инженеры и аналитики данных могут работать в одной среде с использованием таких языков, как T-SQL, Python, Scala и .NET. Платформа также включает встроенные конвейеры интеграции данных (Synapse Pipelines) и глубокую интеграцию с Power BI и Azure Machine Learning, оптимизируя путь от необработанных данных к практическим выводам.
Обработка больших данных с помощью Apache Spark
Azure Synapse предоставляет собственные пулы Apache Spark, которые могут быть предоставлены за секунды. Эти пулы поддерживают крупномасштабные преобразования данных, потоковую аналитику и обучение модели машинного обучения. Инженеры по обработке данных могут писать блокноты PySpark или Scala в рабочем пространстве Synapse Studio, используя знакомые библиотеки Spark для рабочих мест ETL. Тесная связь с Azure Data Lake Storage Gen2 позволяет рабочим местам Spark получать доступ к данным без перемещения, снижения задержки и копирования накладных расходов. Эта настройка идеально подходит для обработки неструктурированных данных, каналов в реальном времени и итеративной аналитики, где традиционная обработка на основе SQL была бы слишком медленной или ограничительной.
Корпоративное хранилище данных с выделенными SQL-пулами
Для структурированных данных и высокопроизводительной аналитики Azure Synapse предлагает выделенные пулы SQL (ранее SQL Data Warehouse). Эти пулы используют архитектуру массивно параллельной обработки (MPP) для распределения выполнения запросов по нескольким узлам, позволяя выполнять ответы на запросы в течение субсекунды на терабайтах данных. Вы можете выбирать между оптимизированными для вычислений и оптимизированными для данных уровнями и приостанавливать / возобновлять пул для управления затратами, когда рабочая нагрузка проста. Интерфейс T-SQL полностью совместим с SQL Server и Azure SQL Database, что делает миграцию простой для существующих специалистов SQL.
SQL без сервера для запросов по запросу
Помимо выделенных пулов, Azure Synapse включает в себя безсерверную конечную точку SQL, которая позволяет запрашивать данные непосредственно из файлов в Azure Data Lake или Blob Storage с использованием стандарта T-SQL. Нет необходимости предоставлять или управлять серверами; вам выставлен счет только за количество сканируемых данных. Это идеально подходит для специального анализа, исследования данных и преобразования необработанных данных в озере без перемещения их в склад. Модель без сервера также поддерживает запрос полуструктурированных данных, таких как JSON, Parquet и CSV файлы, что делает ее гибким инструментом для архитектуры данных Lakehouse.
Ключевые особенности в деталях
В первоначальной статье перечислены несколько особенностей на высоком уровне. Ниже каждый из них дополнен практическими последствиями и техническими деталями.
Единая платформа
Azure Synapse предоставляет единое рабочее пространство под названием Synapse Studio, которое объединяет в себе прием данных, исследование, преобразование, запрашивание, визуализацию и управление. В отличие от предыдущих поколений, где вам нужны были отдельные инструменты для ETL, хранения данных и обработки больших данных, Synapse Studio предлагает интерфейсы с кодом и низким кодом. Это объединение снижает накладные расходы на переключение между пользовательскими интерфейсами и упрощает управление, потому что все активы - трубопроводы, ноутбуки, сценарии SQL, наборы данных - хранятся и управляются централизованно. Это также позволяет совместно работать с различными командами; ученые данных могут получить доступ к тем же наборам данных, что и аналитики BI без ручных переадресаций.
Масштабируемость
Масштабирование в Azure Synapse происходит на нескольких уровнях. Для выделенных SQL-пулов можно масштабировать вычислительные ресурсы вверх или вниз за минуты через портал Azure, T-SQL или PowerShell, подстраиваясь под изменяющиеся требования к рабочей нагрузке. Архитектура отделяет вычисления от хранения, поэтому масштабирование не требует перемещения данных. Для Spark-пулов можно настроить количество узлов и размер узла за сеанс, а пул автомасштабирует на основе параллелизма работы. Безсерверный SQL автоматически масштабируется для обработки одновременных запросов без конфигурации. Эта эластичность гарантирует, что вы платите только за то, что используете, и можете обрабатывать шипы без перенастройки.
Интеграция данных
Azure Synapse включает в себя Synapse Pipelines, облачный сервис ETL/ELT, полученный из Azure Data Factory. С более чем 100 встроенными разъемами вы можете принимать данные из локальных баз данных, приложений SaaS (Salesforce, Dynamics 365), сервисов Azure (Blob, Data Lake, Cosmos DB) и сторонних облачных источников (Amazon S3, Google BigQuery). Трубопроводы поддерживают операции по передаче данных, которые могут запускать преобразования в масштабе с использованием кластеров Spark. Вы можете планировать или запускать трубопроводы на основе событий, гарантируя, что данные всегда свежи для аналитики. Интеграция выходит за рамки приема. Вы также можете организовать переподготовку и развертывание модели машинного обучения в рамках того же конвейера.
Advanced Analytics
Нативная интеграция с Azure Machine Learning позволяет обучать, развертывать и управлять моделями непосредственно из Synapse Studio. Вы можете использовать записные книжки Synapse для изучения данных и построения моделей с использованием Python или R, затем зарегистрировать лучшую модель в рабочем пространстве ML и развернуть её в качестве конечной точки REST. Интеграция Power BI одинаково бесшовна: вы можете создавать наборы данных Power BI непосредственно из источников данных Synapse и создавать живые отчеты, которые обновляются с последними данными. Кроме того, Azure Synapse поддерживает интеграцию когнитивных служб для текстовой аналитики, компьютерного зрения и обнаружения аномалий, которые могут быть встроены в потоки преобразования данных для обогащенных идей.
Безопасность и управление
Безопасность в Azure Synapse многоуровневая и корпоративного уровня. Данные шифруются в состоянии покоя с помощью Azure Storage Service Encryption и в пути с использованием TLS. Интеграция Azure Active Directory позволяет осуществлять одновременный вход и управление доступом на основе ролей (RBAC) на рабочих местах, базах данных и уровнях защиты данных. Безопасность на уровне колонок и строк позволяет осуществлять мелкозернистую маскирование данных для защиты конфиденциальной информации. Динамическая маскировка данных и аудит с помощью SQL Auditing отслеживают все запросы. Для соответствия Azure Synapse отвечает сертификациям, таким как SOC 1/2/3, ISO 27001, HIPAA и FedRAMP, что делает его пригодным для регулируемых отраслей. Линейка данных и анализ воздействия поддерживаются через Azure Purview, который может сканировать и каталогизировать активы данных по всей совокупности данных.
Архитектура Deep Dive
Понимание архитектуры Azure Synapse помогает в оптимизации производительности и стоимости. Сервис построен на распределенном вычислительном слое, который взаимодействует с постоянным слоем хранения (Azure Data Lake Storage Gen2 или Blob Storage). В выделенных пулах SQL данные распределяются по 60 дистрибутивам с использованием стратегии хеширования, кругового шифрования или репликации. Узел управления принимает запросы T-SQL, компилирует их и генерирует планы выполнения, которые распределены по вычислительным узлам. Каждый вычислительный узел обрабатывает свою часть данных параллельно, а результаты агрегируются обратно в узел управления. Этот дизайн MPP позволяет выполнять запросы в масштабе петабайта за считанные секунды.
Для рабочих нагрузок Spark архитектура аналогична: мастер Spark работает на управляющем узле, а рабочие узлы соответствуют вычислительным узлам. Данные считываются непосредственно со слоя хранения, используя выдавливающие предикаты и кэширование для ускорения производительности. Безсерверная конечная точка SQL использует общий хранилище метаданных и вычисляет запросы на лету путем параллельного сканирования разделов. Все три движка имеют один и тот же каталог (Azure Data Lake Storage) и могут получать доступ к одним и тем же данным с помощью согласованных политик безопасности, что позволяет проводить мультимодальную аналитику без дублирования данных.
Используйте случаи, которые демонстрируют ценность
Azure Synapse используется в различных отраслях промышленности для различных сценариев:
- Анализ логотипов: Розничная компания проглатывает миллиарды событий в кликах со своей платформы электронной коммерции в Azure Data Lake. Используя ноутбуки Synapse Spark, они очищают и агрегируют данные почасово. Безсерверный SQL позволяет их аналитикам запрашивать модели поведения пользователей в режиме реального времени без предоставления вычислений, в то время как выделенный SQL объединяет ежедневные панели управления для маркетинговых команд.
- Предсказательное обслуживание: Производственная фирма собирает данные датчиков с заводского оборудования. Synapse Pipelines передает данные в сеанс Spark, где запускаются модели обнаружения аномалий. Выход хранится в выделенном пуле SQL, используемом Power BI, который сообщает, что команды по техническому обслуживанию предупреждают, когда оборудование показывает признаки отказа.
- Unified Customer 360: Компания финансовых услуг объединяет данные CRM, записи транзакций и веб-аналитику в единую модель данных. SQL пулы Azure Synapse позволяют создавать сложные соединения и агрегации в миллиардах строк, в то время как безсерверный SQL позволяет ученым данных быстро исследовать новые источники данных. Полученный в результате просмотр клиентов позволяет персонализировать предложения и модели обнаружения мошенничества.
- Аналитика в реальном времени: Поставщик решений IoT использует Azure Synapse с Azure Stream Analytics для потоковой передачи в реальном времени. Данные поступают с устройств в концентратор событий, затем преобразуются в потоковую передачу Spark и записываются в выделенный пул SQL, где панель управления Power BI показывает живые показатели с задержкой в секунду.
Методы оптимизации производительности
Чтобы получить максимальную отдачу от Azure Synapse, рассмотрим следующие лучшие практики:
- Выбор распределения: Для выделенных пулов SQL выберите распределение хеш-функций в столбце с высокой кардинальностью (например, идентификатор клиента) для балансировки нагрузок данных в распределениях. Используйте круглый ромб для таблиц постановки и реплицированных таблиц для таблиц малых размеров, чтобы избежать перемещения данных.
- Индексирование и разделение: Использование кластерных индексов столбцов для больших таблиц фактов для достижения высокой производительности сжатия и более быстрого сканирования. Таблицы разделов по дате позволяют устранить разделы для временных запросов и эффективных операций архивирования/урезания.
- Настройка результата кэширования: Включите кэширование результатов в выделенных пулах SQL для повторного использования результатов запросов для часто выполняемых запросов, сокращения использования вычислений и улучшения времени отклика.
- Управление рабочей нагрузкой: Использование классификации рабочей нагрузки и важности для приоритизации критических запросов. Выделенные пулы SQL поддерживают группы рабочей нагрузки, которые выделяют слоты памяти и параллелизма, предотвращая влияние беглых запросов на производительность ETL или панели инструментов.
- Смягчение искажения данных: Мониторинг столбцов ключей распределения для искажения с использованием системных DMV. Если один дистрибутив содержит непропорционально больше данных, производительность ухудшается. Восстановление таблиц с другим ключом распределения или использование круговой постановки перед перемещением данных в таблицу, распределенную по хэшу.
Интеграция с экосистемой Azure
Azure Synapse не работает изолированно, он глубоко интегрируется с другими сервисами Azure, чтобы сформировать комплексную платформу данных:
- Azure Data Lake Storage Gen2: Основное хранилище для Synapse, обеспечивающее иерархическое пространство имен и POSIX-разрешения. Данные в озере могут быть запрошены Spark, безсерверным SQL или выделенным SQL-пулом без копирования.
- Лазурная фабрика данных: Трубопроводы Synapse построены на фабрике данных, поэтому вы также можете использовать автономный сервис Data Factory для гибридного перемещения данных.
- Поддерживаются соединения DirectQuery и режима импорта. Также можно использовать наборы данных Power BI для построения композитных моделей, которые объединяют данные Synapse с другими источниками.
- Azure Purview: Для управления данными Purview сканирует рабочие пространства Synapse для заполнения каталога данных, отслеживания происхождения и обеспечения соблюдения политики классификации данных. Владельцы данных могут устанавливать ярлыки чувствительности, которые поступают в Power BI и другие инструменты потребления.
- Azure DevOps и GitHub: Synapse Studio поддерживает интеграцию управления исходными кодами с использованием репозиториев, позволяя CI/CD для конвейеров, ноутбуков и сценариев SQL. Это имеет решающее значение для корпоративных команд, которым требуется контроль версий и автоматизированное развертывание.
Модели управления затратами и ценообразования
Azure Synapse предлагает несколько ценовых компонентов, которые можно оптимизировать:
- Выделенный SQL Pool: Оплата за DWU (Data Warehouse Unit) для вычисления с проставленным кодом. Вы можете приостановить пул, когда он не используется, чтобы остановить заряды, и динамически масштабировать вверх/вниз. Автопауза и правила резюме могут быть установлены для эффективности.
- Безсерверный SQL: Платите за ТБ обработанных данных. Если у вас непредсказуемые или специальные шаблоны запросов, безсерверный более экономичен, чем выделенный пул. Используйте кэширование результатов для уменьшения повторяющихся сканирований.
- Apache Spark Pool: Платите за vCore-час вычислений. Вы можете выбрать автомасштабирование и установить минимальные/максимальные узлы. Используйте пулы с точечными экземплярами для некритических заданий, чтобы сэкономить до 60%.
- Synapse Pipelines: Запись на основе количества заданий и времени работы интеграции. Оркестрация по большим наборам данных может быть оптимизирована с использованием потоков данных только при необходимости.
- Хранение данных: Хранение данных Azure Data Lake взимает отдельную плату за хранение (за ГБ/месяц). Использование холодного или архивного уровня для исторических данных может снизить затраты, но обеспечить его доступность при необходимости.
Начало работы с Azure Synapse
Запуск вашей первой аналитической нагрузки включает в себя несколько шагов. Начните с предоставления рабочего пространства Azure Synapse Analytics с портала Azure. Вы можете выбрать область, хранилище данных озера и настройки пула SQL. Как только рабочее пространство будет готово, откройте Synapse Studio, чтобы начать строительство. Используйте интегрированную обучающую галерею, чтобы узнать на примере: загрузите набор данных образца, запустите ноутбук Spark, создайте T-SQL вид и создайте отчет Power BI - все это, не покидая студию. Для производства, настройте репозитории кода, определите триггеры трубопровода и настройте мониторинг с помощью Azure Monitor и Log Analytics.
Заключение
Azure Synapse Analytics превратилась из простого хранилища данных в единую аналитическую платформу, которая отвечает требованиям современных организаций, управляемых данными. Объединив обработку больших данных, корпоративное хранение и безсерверный запрос в одной услуге, она устраняет трения между инжинирингом данных и анализом данных. Его глубокая интеграция с экосистемой Azure, сильная позиция безопасности и гибкие модели ценообразования делают его привлекательным выбором для предприятий, желающих масштабировать свою аналитическую инфраструктуру. Независимо от того, строите ли вы хранилище данных, модернизируете существующий хранилище данных или позволяете аналитику самообслуживания, Azure Synapse предоставляет инструменты и производительность, чтобы превратить сырые данные в стратегические решения.
Для дальнейшего изучения обратитесь к официальной документации Microsoft для руководств по архитектуре, передовой практике и учебникам быстрого запуска. Для реальных шаблонов развертывания проверьте Руководство по архитектуре данных Azure и Примеры интеграции Power BI . При тщательном планировании и оптимизации Azure Synapse может обрабатывать ваши самые требовательные рабочие нагрузки по большим данным и складированию, сохраняя при этом предсказуемые затраты.