1. Что такое кластер больших данных SQL Server 2019 на самом деле?

По сути, это комбинация SQL Server, Apache Spark и файловой системы HDFS, работающая в среде Kubernetes.

Виртуализация данных

Сохраняет ваши данные в источнике, а не дублирует их

💡 Пунктирные прямоугольники в целевом объекте виртуализации данных представляют виртуальные источники данных, которые всегда возвращаются к одному экземпляру данных в исходном Рис. 1–1. Обзор функций кластеров больших данных SQL Server 2019 Глава 1 Что такое кластеры больших данных? источник. В мире Microsoft это преобразование данных в исходный источник осуществляется с помощью функции SQL Server под названием PolyBase, что позволяет виртуализировать всю или часть вашей витрины данных.

💡 Вы не копируете из первоисточника, а читаете прямо оттуда

💡 С PolyBase ваш запрос выполняется в режиме реального времени, тогда как интегрированные данные всегда будут иметь некоторую задержку.

💡 С другой стороны, вы не можете размещать индексы на внешней таблице. Таким образом, если у вас есть данные, которые вы часто запрашиваете с различными рабочими нагрузками, чем в исходном источнике, что означает, что вам требуется другая стратегия индексирования, все же может иметь смысл интегрировать данные, а не виртуализировать их. Это решение также может быть обусловлено вопросом о том, можете ли вы принять дополнительную рабочую нагрузку на ваш источник, которая может возникнуть в результате более частых запросов отчетов и т. д.

PolyBase был значительно улучшен за счет поддержки нескольких реляционных источников данных, таких как SQL Server или Oracle, и источников NoSQL, таких как MongoDB, HDFS, и всех других типов данных, как показано на рисунке

По сути, вы можете запросить таблицу в другой базе данных или даже на совершенно другом компьютере, как если бы это была локальная таблица.

Преимущества кластера больших данных:

  • Сократите избыточность данных и время разработки
  • Комбинированная среда платформы данных
  • Централизованная платформа ИИ

PySpark и Scala при выполнении рабочей нагрузки машинного обучения через кластер Spark

Кластеры больших данных могут обрабатывать практически любой процесс машинного обучения, от обработки оценки в реальном времени до использования графических процессоров в сочетании с TensorFlow для оптимизировать обработку рабочих нагрузок, интенсивно использующих ЦП, или, например, выполнять задачи классификации изображений

2. Архитектура кластера больших данных

2.1 Физическая инфраструктура кластера больших данных

  • Контейнеры
  • SQL Server для Linux
  • Искра
  • HDFS

2.2 Логическая архитектура кластера больших данных

  • Плоскость управления
  • Вычислительная область
  • Область данных
  • Пул хранения
  • Пул данных SQL

2.1 Физическая инфраструктура кластера больших данных

2.1.1 Контейнеры

Кластеры больших данных построены на основе Kubernetes.

2.1.2 SQL-сервер в Linux

Microsoft представила концепцию под названием Platform Abstraction Layer (или PAL для краткости). Drawbridge — это исследовательский прототип новой формы виртуализации для песочницы приложений. Drawbridge сочетает в себе две основные технологии: во-первых, пикопроцесс, который представляет собой изолированный контейнер на основе процессов с минимальной поверхностью API ядра. Во-вторых, библиотечная ОС, представляющая собой версию Windows, оптимизированную для эффективной работы в рамках пикопроцесса. Команда SQL Server может разрабатывать код, как они это делали всегда, и оставлять преобразование вызовов операционной системы в SQLPAL.

При развертывании кластера больших данных сценарий развертывания позаботится о полной установке SQL Server в Linux внутри контейнера.

2.1.3 Искра

Включение Spark в продукт означает, что теперь вы можете легко обрабатывать и анализировать огромные объемы кода. Код, который вы пишете как пользователь, переводится процессом драйвера на язык, понятный вашим рабочим узлам; он распределяет работу между различными рабочими узлами, которые обрабатывают данные. Spark использует рабочих для выполнения фактической обработки данных. Этим рабочим сообщают, что делать через так называемое приложение Spark, которое определяется как процесс-драйвер, который он отслеживает. состояние вашего приложения Spark, реагирует на ввод или вывод, а также планирует и распределяет работу среди рабочих.

Внутри кластеров больших данных SQL Server Spark включен в отдельный контейнер, который совместно использует модуль вместе с контейнером SQL Server в Linux.

2.1.4 HDFS

Распределенная файловая система Hadoop — это основной метод хранения данных внутри архитектуры Spark.

В отличие от Hadoop, Spark не обязательно ограничивается данными, находящимися в HDFS. Spark может получать доступ к данным, хранящимся в различных источниках, через API и встроенную поддержку.

Данные распределяются по узлам, которые также обрабатывают данные внутри архитектуры Spark.

Благодаря дополнительному преимуществу кэширования данных внутри рабочих узлов Spark данные могут обрабатываться очень эффективно.

2.2 Логическая архитектура кластера больших данных

Главный экземпляр SQL Server — это развертывание SQL Server в Linux внутри узла Kubernetes. Главный экземпляр SQL Server действует как точка входа в ваш кластер больших данных и предоставляет внешнюю конечную точку для подключения через Azure Data Studio (ADS).

Главный экземпляр SQL Server будет распределять ваши запросы по всем узлам SQL Server внутри вычислительных пулов и получать доступ к данным, которые хранятся через PolyBase в HDFS внутри Data Plane. В главном экземпляре SQL Server также включены службы машинного обучения. Это позволяет запускать аналитику в базе данных с использованием R, Python или Java прямо из ваших запросов.

Службы машинного обучения также могут получать доступ к нереляционным данным, хранящимся в файловой системе HDFS. Это означает, что ваши специалисты по анализу данных или ученые могут выбрать использование служб машинного обучения Spark или SQL Server для анализа или операционализации данных, хранящихся в файловой системе HDFS. кластер больших данных

2.2.1 Плоскость управления

Он предоставляет различные инструменты управления и ведения журналов, такие как Grafana, и является централизованным местом, где вы выполняете все управление кластером больших данных. Кроме того, безопасность внутри кластера больших данных управляется и контролируется через Control Plane.

2.2.3 Область вычислений

Вычислительная область состоит из одного или нескольких вычислительных пулов. Вычислительный пул — это коллекция модулей Kubernetes, которые содержат SQL Server в Linux. Используя вычислительный пул, вы можете получить распределенный доступ к различным источникам данных через PolyBase.

Например, вычислительный пул может получить доступ к данным, хранящимся внутри HDFS в самом кластере больших данных, или получить доступ к данным через любой из соединителей PolyBase, таких как Oracle или MongoDB.

По умолчанию у вас будет доступ к одному пулу вычислений внутри логической области вычислений. Однако вы можете добавить несколько вычислительных пулов в ситуациях, когда, например, вы хотите выделить ресурсы для доступа к определенному источнику данных. Все управление и настройка каждого модуля Kubernetes внутри вычислительного пула осуществляется главным экземпляром SQL Server.

2.2.3 Область данных

Используется для сохранения и кэширования данных внутри вашего кластера больших данных и разделен на две разные роли: пул хранения и пул данных SQL, которые имеют разные функции внутри кластера больших данных.

Основное преимущество наличия вычислительного пула заключается в том, что он открывает возможности для распределения или масштабирования запросов между несколькими узлами внутри каждого вычислительного пула, повышая производительность запросов PolyBase.

2.2.3.1 Пул хранения

Пул хранения состоит из модулей Kubernetes, которые объединяют Spark, SQL Server в Linux и узел данных HDFS.

Кластер HDFS автоматически обеспечивает сохранение данных, поскольку данные, которые вы импортируете в пул хранения, автоматически распределяются по всем узлам хранения внутри пула хранения. Такое распределение данных по узлам также позволяет быстро анализировать большие объемы данных, поскольку нагрузка анализа распределяется между несколькими узлами. Одним из преимуществ этой архитектуры является то, что вы можете либо использовать локальное хранилище, присутствующее в узле данных, либо добавить к узлам собственную подсистему постоянного хранения.

Поскольку узел хранения сочетает в себе SQL Server и Spark, все данные, находящиеся на узлах хранения или управляемые ими, также могут быть напрямую доступны через Spark. Это означает, что вам не нужно использовать PolyBase для доступа к данным внутри среды HDFS.

2.2.3.2 Пул данных SQL

Он не объединяет Spark или HDFS вместе в узел. Вместо этого пул данных SQL состоит из одного или нескольких экземпляров SQL Server в Linux. Эти экземпляры называются осколками.

Основная роль пула данных SQL заключается в оптимизации доступа к внешним источникам с помощью PolyBase. Пул данных SQL может затем разделять и кэшировать данные из этих внешних источников внутри экземпляров SQL Server и, в конечном итоге, обеспечивать параллельные и распределенные запросы к внешним источникам данных.