Microsoft SQL Server Big Data Clusters
Microsoft SQL Server Big Data Clusters — это компонент платформы Microsoft SQL Server, предназначенный для развертывания масштабируемых кластеров, обеспечивающих совместную обработку реляционных данных, больших данных (Big Data) и возможностей искусственного интеллекта (AI) в единой среде. Решение было представлено в SQL Server 2019 и позволяет объединить традиционные базы данных с экосистемой Apache Hadoop и Apache Spark, работая в контейнеризированной среде (Kubernetes). Big Data Clusters (BDC) предоставляют возможность выполнения запросов T-SQL к данным из различных источников (HDFS, Spark, внешние хранилища), а также запуска машинного обучения и аналитики непосредственно на кластере.
История и развитие
Концепция Big Data Clusters возникла как ответ на растущие потребности предприятий в обработке неструктурированных и полуструктурированных данных, которые не вписываются в традиционные реляционные модели. Microsoft, стремясь интегрировать свою платформу SQL Server с экосистемой больших данных, анонсировала BDC в 2018 году, а полноценный выпуск состоялся в рамках SQL Server 2019 (ноябрь 2019 года). Ключевым нововведением стало использование Apache Spark (система для распределённой обработки данных) и Hadoop Distributed File System (HDFS) (распределённая файловая система) в качестве встроенных компонентов, управляемых через Kubernetes. В 2021 году Microsoft объявила о прекращении активной разработки BDC в пользу облачных решений Azure (Azure Arc, Azure SQL Managed Instance), однако поддержка существующих развёртываний продолжается в рамках жизненного цикла SQL Server 2019.
Архитектура и компоненты
Big Data Clusters построены на модульной архитектуре, работающей поверх оркестратора контейнеров Kubernetes. Кластер состоит из трёх основных групп компонентов:
1. Главный экземпляр SQL Server
- Роль: Центральная точка управления и выполнения запросов T-SQL.
- Функции: Обрабатывает реляционные запросы, управляет метаданными, координирует работу с данными HDFS и Spark через PolyBase (технология виртуализации данных). Главный экземпляр может быть развёрнут в конфигурации с высоким уровнем доступности (Always On Availability Groups).
2. Пул данных (Data Pool)
- Назначение: Хранение и обработка больших объёмов реляционных данных в распределённом виде.
- Особенности: Состоит из нескольких экземпляров SQL Server, работающих в параллельном режиме. Данные могут быть фрагментированы (sharded) для ускорения запросов. Пул данных используется для ETL-процессов (Extract, Transform, Load) и аналитики на больших объёмах.
3. Пул носителей (Storage Pool)
- Назначение: Хранение данных в формате HDFS, включая неструктурированные и полуструктурированные данные (CSV, Parquet, JSON, изображения).
- Компоненты: Включает экземпляры SQL Server, которые одновременно являются узлами HDFS. Это позволяет выполнять запросы T-SQL непосредственно к файлам, хранящимся в HDFS, без предварительной загрузки в базу данных.
4. Пул вычислений (Compute Pool)
- Назначение: Масштабирование вычислительных мощностей для обработки сложных запросов.
- Особенности: Состоит из экземпляров SQL Server, которые не хранят данные, а только обрабатывают запросы, поступающие от главного экземпляра. Пул вычислений используется для распределённой обработки запросов PolyBase.
5. Пул Spark (Spark Pool)
- Назначение: Запуск заданий Apache Spark (Java, Scala, Python, R) для машинного обучения, потоковой обработки и сложной аналитики.
- Компоненты: Включает узлы Spark (драйверы и исполнители), работающие в контейнерах. Пул Spark может обращаться к данным HDFS, а также к реляционным данным через PolyBase.
Ключевые возможности
1. Объединённая аналитика
- PolyBase: Технология, позволяющая выполнять запросы T-SQL к данным из HDFS, внешних источников (Azure Blob Storage, Oracle, Teradata) и пулов данных BDC. Это устраняет необходимость перемещения данных между системами.
- Пример запроса:
SELECT FROM OPENROWSET('Hadoop', '...', 'SELECT FROM /data/sales.parquet')
2. Интеграция с Apache Spark
- Запуск заданий: Пользователи могут запускать Spark-приложения (например, для обучения моделей машинного обучения) непосредственно из SQL Server Management Studio (SSMS) или Azure Data Studio.
- Совместное выполнение: T-SQL-запросы могут вызывать Spark-задания, а Spark-задания — обращаться к реляционным данным SQL Server.
3. Контейнеризация и оркестрация
- Kubernetes: Кластеры развёртываются в среде Kubernetes (локально или в облаке), что обеспечивает автоматическое масштабирование, восстановление после сбоев и управление ресурсами. Поддерживаются Azure Kubernetes Service (AKS), Red Hat OpenShift и другие дистрибутивы.
4. Безопасность и управление
- Аутентификация: Используется Active Directory (Kerberos) для единого входа и управления доступом.
- Шифрование: Данные шифруются на уровне HDFS (TLS/SSL) и на уровне SQL Server (Transparent Data Encryption).
- Мониторинг: Интеграция с Grafana и Kibana для визуализации метрик и логов кластера.
Применение
1. Data Lakehouse
Big Data Clusters позволяют создать единое хранилище (data lakehouse), объединяющее реляционные базы данных (SQL Server) и неструктурированные данные (HDFS). Это упрощает аналитику: данные не нужно копировать в отдельные системы.
2. Машинное обучение
- Обучение моделей: Spark MLlib и Python (через Jupyter Notebooks) используются для построения прогнозных моделей непосредственно на данных HDFS.
- Вывод: Обученные модели могут быть развёрнуты как хранимые процедуры T-SQL (через SQL Server Machine Learning Services).
3. Интеграция с Azure
- Azure Arc: BDC могут быть подключены к Azure Arc для централизованного управления, мониторинга и применения политик.
- Гибридные сценарии: Данные могут обрабатываться локально, а результаты передаваться в облачные сервисы Azure (например, Azure Synapse Analytics).
4. Потоковая обработка
- Apache Spark Streaming: Позволяет обрабатывать потоки данных (например, из IoT-устройств) в реальном времени и записывать результаты в HDFS или SQL Server.
Преимущества и ограничения
Преимущества
- Унификация: Единая платформа для реляционных данных, Big Data и AI.
- Масштабируемость: Горизонтальное масштабирование за счёт Kubernetes.
- Безопасность: Интеграция с корпоративной инфраструктурой Active Directory.
- Снижение затрат: Уменьшение необходимости в отдельных кластерах Hadoop/Spark.
Ограничения
- Сложность развёртывания: Требует глубоких знаний Kubernetes и сетевой инфраструктуры.
- Производительность: PolyBase может быть медленнее специализированных решений (например, Apache Hive) при обработке очень больших объёмов данных.
- Прекращение развития: Microsoft не планирует выпускать новые версии BDC, сосредоточившись на Azure. Поддержка SQL Server 2019 BDC завершится вместе с жизненным циклом SQL Server 2019 (2025 год).
Сравнение с альтернативами
| Характеристика | Microsoft SQL Server BDC | Azure Synapse Analytics | Apache Hadoop (open source) |
|---|---|---|---|
| Тип | Гибридное решение (on-premises/облако) | Облачное решение (PaaS) | Open-source платформа |
| Управление | Kubernetes + SQL Server | Azure Portal | YARN + HDFS |
| Реляционные данные | SQL Server (нативный) | Azure SQL Pool | Через Hive/Spark SQL |
| Big Data | HDFS + Spark | Azure Data Lake Storage | HDFS + Spark |
| Машинное обучение | Spark MLlib, SQL Server ML | Azure ML | Spark MLlib |
| Сложность | Высокая | Средняя | Высокая |
Интересные факты
- Название: Термин «Big Data Clusters» был введён Microsoft для маркетингового продвижения интеграции SQL Server с Hadoop/Spark.
- PolyBase: Технология была впервые представлена в SQL Server 2016, но в BDC получила поддержку HDFS и Spark.
- Kubernetes: BDC стали одним из первых продуктов Microsoft, использующих Kubernetes для развёртывания SQL Server (наряду с Azure SQL Managed Instance).
- Сообщество: Несмотря на прекращение развития, BDC остаётся популярным решением среди организаций, уже использующих SQL Server и не готовых мигрировать в облако.
Источники
- Microsoft Docs: "What are SQL Server Big Data Clusters?" (SQL Server 2019 documentation).
- Microsoft Research: "Big Data Clusters: Architecture and Deployment" (technical white paper, 2019).
- Gartner: "Market Guide for Data Lakehouse Platforms" (2020).
- TechNet: "SQL Server 2019 Big Data Clusters: A Technical Overview" (2020).
- Журнал "Системный администратор": "Обзор SQL Server 2019 Big Data Clusters" (2021).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →