Открыть сервисСервис

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 BDCAzure Synapse AnalyticsApache Hadoop (open source)
ТипГибридное решение (on-premises/облако)Облачное решение (PaaS)Open-source платформа
УправлениеKubernetes + SQL ServerAzure PortalYARN + HDFS
Реляционные данныеSQL Server (нативный)Azure SQL PoolЧерез Hive/Spark SQL
Big DataHDFS + SparkAzure Data Lake StorageHDFS + Spark
Машинное обучениеSpark MLlib, SQL Server MLAzure MLSpark 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).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru