Новое в SQL Server 2022: Виртуализация данных с помощью PolyBase/REST API
Microsoft SQL Server 2022 представляет новую возможность запрашивать данные непосредственно из источников, осуществлять виртуализацию данных, и использовать интерфейсы REST API. Это делает работу с данными ещё более лёгкой и гибкой, за счёт увеличения числа поддерживаемых коннекторов и форматов файлов. Поддерживаются форматы: CSV, Parquet и Deltafiles, хранящиеся в любом объектном хранилище, совместимом со службой хранения S3, как локально, так и в облаке. И наконец, SQL Server 2022 теперь может использовать операции Create External Table as Select (CETAS) в OPENROWSET, вместе с такими командами как Create External Table (CET) совместно со всеми возможностями T-SQL. Всё это делает SQL Server 2022 мощным центром управления данными.
Как это работает?
Виртуализация данных в SQL Server 2022 стала более гибкой и простой, поскольку эти возможности находятся внутри ядра СУБД. Рисунок ниже даёт некое представление об архитектуре:
OPENROWSET: это простенькая команда, которая позволяет в T-SQL получать доступ к данным вне SQL Server, будь то файл или другая база данных. Рекомендуется для загрузки/выборки данных.
CREATE EXTERNAL TABLE (CET): создает таблицу, в которой данные остаются в своем исходном расположении вне SQL Server, и при выборке ядро SQL Server доставляет запрошенные данные пользователю. Внешняя таблица может после этого использоваться повторно и оптимизатор может собирать по её колонкам статистику для повышения производительности запросов.
CREATE EXTERNAL TABLE as SELECT (CETAS): выполняет несколько операций за один раз. Можно делать преобразования и конвертацию указанных данных, размещаемых как внутри, так и вне базы данных. Затем можно экспортировать данные в другое место в сети или «облаке». В завершение, создаётся внешняя таблица, предназначенная для хранения экспортируемых данных.
Эти операции защищены главным ключом базы данных и внешними учетными данными для хранилища. Если данные будут хранится в совместимом с S3 объектном хранилище, SQL Server 2022 будет использовать для этого реализацию REST API. В других случаях SQL Server 2022 будет использовать службы PolyBase, однако установка служб PolyBase требуется во всех случаях.
Полный список источников данных можно найти в документации: CREATE EXTERNAL DATA SOURCE (Transact-SQL).
Полный список поддерживаемых форматов внешних файлов можно узнать в статье: CREATE EXTERNAL FILE FORMAT (Transact-SQL).
Преимущества
Основные преимущества виртуализации данных SQL Server 2022 с помощью PolyBase:
- Не нужно перемещать данные: доступ к данным там, где они расположены.
Язык T-SQL: можно использовать все возможности языка T-SQL, его команд, надстроек и диалекта. - Один источник для всех данных: пользователи и приложения могут использовать SQL Server 2022 в качестве единого источника любых данных, а администраторы баз данных и инженеры данных смогут использовать единую среду управления.
- Безопасность: можно использовать весь функционал безопасности SQL Server для предоставления гранулированных разрешений, управления учетными данными и их контроля.
- Стоимость: PolyBase доступен во всех редакциях SQL Server 2022.
Что такое MS SQL Server и чем она отличается от других СУБД
Веб-ресурсы содержат огромное количество данных – от учетных записей пользователей до контента, опубликованного на страницах. То же относится к «облачным» приложениям вроде CRM, программ для бухучета, складского учета и пр. Везде используется один способ хранения информации – база данных. И этой базой необходимо как-то управлять.
Сегодня мы поговорим об одной из самых популярных систем управления реляционными базами данных – MS SQL Server.
Что такое MS SQL Server
Чтобы упростить работу с такими хранилищами данных и повысить эффективность их применения, создаются специализированные системы управления. Одной из наиболее популярных является разработка от Microsoft – SQL Server. Первый релиз платформы опубликован еще в 1989 году, а последняя версия выпущена в 2019 году (проект продолжает развиваться).
- Тесная интеграция с операционной системой Windows.
- Высокая производительность, отказоустойчивость.
- Поддержка многопользовательской среды.
- Расширенные функции резервирования данных.
- Работа с удаленным подключением.
Каждый выпуск включает в себя несколько специализированных редакций. Это снижает сложность внедрения и затраты на процесс разработки собственных решений, адаптированных для «узких» задач. При написании программного кода активно используется интеграция с продуктами Microsoft, например, с платформой Visual Studio.
Прямые конкуренты на рынке – Oracle Database, PostgreSQL. Первый проект коммерческий, он создан для поддержки крупных компаний, поэтому сопоставим по возможностям с MS SQL Server. Второй же распространяется на бесплатной основе и не «блещет» функциональностью, хотя весьма популярен среди многих разработчиков (аналог от Oracle MySQL).
Что такое СУБД
Появление таких продуктов позволило объединить разное понимание БД (баз данных) со стороны пользователей и системных администраторов. Неискушенные в технических деталях люди «видят» таблицы как некий перечень данных с колонками и строками. Системный подход включает файлы с табличными данными, связанными друг с другом согласно определенному алгоритму.
Функции базы данных:
- Постоянное хранение информации.
- Поиск по ключевым критериям.
- Чтение и редактирование по запросу.
Клиентами БД являются прикладные программы, их интерфейс, различные интерактивные модули сайтов вроде калькуляторов и онлайн-редакторов. Но есть еще один компонент системы – СУБД. Он предназначен для ручного доступа к информации и позволяет извлекать данные на диск, работать с ними в памяти сервера, в том числе с применением структурированного языка SQL.
Всего различают три типа БД – клиент-серверные, файл-серверные и встраиваемые. MS SQL Server относится к первой категории. Плюс система является реляционной, т.е. адаптированной для хранения данных без избыточности, с минимальными рисками появления аномалий и нарушения целостности внутренних таблиц.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Расширения языка SQL
Язык SQL представляет собой стандарт, унифицирующий обработку данных всеми реляционными базами данных. Такой подход упрощает перекрестные обращения, дает возможность переходить на «иную платформу» без серьезных переделок проекта. Но здесь нужно учитывать, что в каждой БД имеется собственный язык, который называется диалектом (расширением).
- Transact-SQL (T-SQL) – применяется в MS SQL Server.
- PL/SQL (Procedural Language/Structured Query Language) – аналог от Oracle.
- PL/pgSQL (Procedural Language/PostGres Structured Query Language) – язык используется в PostgreSQL.
Обычно от выбранной СУБД зависит, какой язык предстоит использовать (или от навыков человека, который будет администрировать систему). Синтаксис конструкций у них сильно различается, как и формат обращения ко встроенным функциям, поэтому чаще всего тип БД для проекта выбирается раз и навсегда.
Инсталляция MS SQL Server
Подготовительный шаг – скачать установочный пакет SQL Server Enterprise с официальной страницы сайта Microsoft. После нажатия на кнопку «Бесплатная пробная версия» будет предложено выбрать вариант EXE или Azure («облако») и внести свои анкетные данные, при сохранении которых начнется загрузка инсталляционного файла.
Перед запуском установщика нужно создать учетную запись пользователя. Она пригодится для авторизации на сервере при запросе доступа с клиентских компьютеров (даже при условии, что ПК будет один и тот же).
- В поиске набрать команду lusrmgr.msc и нажать Enter.
- Создать нового пользователя и задать ему пароль доступа.
- Сохранить изменения и перезагрузить компьютер.
Рекомендуется в имени и пароле использовать только буквы латиницы и цифры, кириллица будет привносить риски локальных сбоев из-за особенностей обработки. Теперь можно запускать файл с дистрибутивом MS SQL Server. Программа предложит 3 варианта действий: базовая инсталляция с настройками «по умолчанию», выборочный режим или скачивание файлов «на потом».
В большинстве случаев выбирается первый пункт, при нажатии на который предлагается прочитать и подтвердить лицензионное соглашение. На следующем шаге система позволяет вручную выбрать каталог для установки или согласиться с предложенным значением. Остается нажать на кнопку «Установить» и дождаться завершения процесса.
Файлы в основном скачиваются с официального сервера, поэтому понадобится стабильный доступ к интернету. Такой подход обеспечивает установку последнего релиза и проверку легитимности всех модулей (отсутствие вредоносного ПО). Последнее окно сообщает об успешном завершении, после которого можно сразу подключаться к серверу.
Зачем нужен SQL Server Management Studio
Для удобства администрирования также понадобится SQL Server Management Studio (SSMS). Он представляет собой интегрированную среду для управления инфраструктурой БД и поддерживает любые ее варианты – от локальной до Azure. В него встроены инструменты настройки, наблюдения и редактирования экземпляров баз данных.
- Нажать кнопку «Установить SSMS» в окне инсталлятора SQL Server.
- Произойдет автоматическое перенаправление на официальную страницу продукта.
- Скачать последний релиз программного обеспечения на компьютер.
- Запустить инсталлятор и нажать кнопку «Установить».
Программные пакеты приложения также загружаются напрямую из интернета, поэтому требуется стабильный доступ к сети. После завершения установки будет запрошена перезагрузка компьютера. Все, система полностью готова к эксплуатации и созданию первой базы данных.
Хостинг-провайдеры обычно предлагают предустановленный комплект поддержки баз данных на SQL Server. Он не всегда последней версии, зато наверняка работоспособен в рамках как панели управления, так и публикуемых веб-ресурсов. Пользователю фактически предлагается сразу начать с создания БД – запрашивается всего лишь ее название, имя пользователя и пароль.
Основы работы с MSSQL
Поговорим о том, как работает БД MSSQL, зачем она нужна и как настроить свой SQL-сервер Microsoft.
Что такое база данных
База данных – это система хранения информации. Она является постоянным онлайн-хранилищем, в котором можно держать любые данные, необходимые для корректной работы вашего приложения – комментарии, статьи, профили пользователей, списки избранных материалов, песни, видео в YouTube. Все это можно считать элементами БД.
Базы данных позволяют хранить, добавлять, модифицировать и находить информацию по запросу программиста.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Что такое SQL
SQL – это язык для «общения» с базами данных. Специальный синтаксис, позволяющий при помощи несложных команд запрашивать информацию из БД или, наоборот, добавлять в нее новый контент. SQL часто используется в реляционных базах данных, где соседние элементы тесно связаны друг с другом и организуются при помощи таблиц. Схожий синтаксис используется в БД MySQL, PostgresSQL и SQL Server от Microsoft (собственно, это и есть наша MSSQL).
SQL используется как в специальных приложениях для взаимодействия с базами данных, так и на программном уровне (непосредственно в коде ваших сайтов и других проектов).
MySQL и MSSQL – одно и то же?
Нет. Как уже было отмечено выше, существует множество баз данных. MySQL чаще остальных упоминается в сети, так как является наиболее популярным вариантом БД. Она имеет открытый исходный код и распространяется бесплатно, поэтому и сыскала любовь массовой аудитории.
MSSQL – это продукт Microsoft, существующий как в коммерческой, так и в бесплатной версии. И несмотря на то, что оба продукта используют схожий синтаксис, они отличаются друг от друга с точки зрения функциональности и в плане поддержки со стороны разработчиков.
Также существует PostgreSQL – еще одна популярная база данных с высоким уровнем отказоустойчивости и большой коллекцией расширений.
Какой вариант SQL выбрать?
Вариант Microsoft отличается от конкурентов заточенностью под корпоративные задачи. В частности, решение MSSQL может похвастать повышенной надежностью. Пользователь не вправе вносить изменения в базу данных, пока она функционирует и используется приложением. Добавлять данные на SQL-сервер необходимо в момент, когда БД выключена.
При этом MSSQL Server позволяет прерывать запросы, в то время как основной конкурент базы в лице MySQL такого не допускает.
Но зато решение Microsoft стоит денег, и бесплатно разместить у себя SQL-сервер не получится (есть пробная версия и специальный вариант MSSQL для разработчиков, но использовать их в коммерческих целях нельзя).
Как настроить MSSQL?
Чтобы начать работать с Microsoft SQL Server, надо раздобыть копию самого сервера, а также установить программу для управления базами данных Microsoft через графический интерфейс.
О том, как запустить SQL-сервер подробно рассказывается на официальном сайте Microsoft. Там же есть и бесплатный дистрибутив платформы под названием Developer. Для первого знакомства с Microsoft SQL Server, отладки и тестирования кода Developer-версии будет достаточно. Загружаем ее и запускаем.
Затем устанавливаем приложение SQL Server Management Studio. Это графическая оболочка для редактирования информации в SQL-таблицах базы данных Microsoft.
Подключение к SQL-серверу
Для начала откроем утилиту SQL Server Management Studio. Все манипуляции мы будем проделывать через нее. При первом же запуске эта программа попросит вас подключиться к SQL-серверу. В интерфейсе программы он называется Database Engine.
Приложение запросит ряд данных для подключения.
- Тип сервера (можно оставить по умолчанию, так как пока мы работаем с локальной копией MSSQL).
- Имя сервера. Нужно его заменить, если вы переименовывали сервер, когда запускали собственную копию базы данных на локальной машине.
- Способ аутентификации. Стоит оставить по умолчанию, если не хотите вводить пароль и логин от базы данных (или если вы вовсе их не устанавливали).
Указав необходимую информацию, нажимаем на кнопку Connect. Через несколько секунд соединение должно быть установлено, а в окне Object Explorer появится информация о SQL-сервере и его содержимом.
Создание базы
Важный момент заключается в том, что SQL-сервер и база данных – не одно и то же. Поэтому, запустив сервер и подключившись к нему, вам все еще необходимо создать базу самостоятельно.
Для этого в SQL Server Management Studio:
- Правой кнопкой мыши кликаем по названию сервера в окне Object Explorer.
- В списке опций находим пункт New Query.
- Появится окно для ввода запроса. Здесь как раз поддерживается SQL-синтаксис – с помощью него мы и создадим новую базу данных.
USE master GO IF NOT EXISTS ( SELECT name FROM sys.databases WHERE name = N'databaseName' ) CREATE DATABASE [databaseName] GO
Только вместо databaseName укажите название БД на свой вкус, не меняя соседних символов и других участков кода.
- После этого активируем запрос, нажав на кнопку Execute в левой части интерфейса программы или на клавишу F5.
Создание таблиц
Следующая по важности структура в БД – таблица. Это набор данных, связанных какой-то характеристикой. Например, в таблице могут храниться статьи из блога. Таблицей может быть плейлист в Spotify. Отдельной таблицей может быть ветка в Твиттере или список пользователей в Facebook. Способы применения таблиц ограничиваются только фантазией разработчика.
А еще таблицы визуально напоминают Excel, поэтому для многих будет привычным подобный интерфейс.
Чтобы создать новую таблицу:
- Кликаем по выпадающему меню со списком доступных баз данных (это поле под основным меню справа от значка в виде вилки).
- В появившемся списке выбираем свою базу.
- Снова делаем SQL-запрос к базе:
USE [myTable] IF OBJECT_ID('dbo.Posts', 'U') IS NOT NULL DROP TABLE dbo.Posts GO CREATE TABLE dbo.Posts ( postId INT NOT NULL PRIMARY KEY, -- primary key column Title [NVARCHAR](50) NOT NULL, Category [NVARCHAR](50) NOT NULL, Content [NVARCHAR](50) NOT NULL ); GO
- Активируем запрос, нажав на клавишу F5.
После этого в Object Explorer появится новое поле, отражающие вновь созданную таблицу со всеми необходимыми поддиректориями (колонками, строками и т.п.).
Встраивание строк в таблицу
Сами по себе таблицы не особо полезны, если в них нет какого-либо контента. Контент добавляется с помощью строк. Строка – это набор данных, включающий в себя информацию по пунктам, соответствующим колонкам в таблице. А колонки в таблице – это список параметров, что мы указали выше, когда создавали таблицу (в нашем случае это были пункты postId, Title, Category и Content).
Чтобы добавить строки в таблицу, снова воспользуемся SQL-выражением:
INSERT INTO dbo.Customers ([postId],[Title], [Category], [Content]) VALUES ( 1, N'About apes', N'Animals', N'Apes are cool'), ( 2, N'Story', N'Articles', N'The story about dead women killer'), ( 3, N'Very important article', N'News', N'Not so important information'), GO
В запросе мы указываем наименования колонок, которые будут заполнены данными из списка запросов. В поле VALUE как раз указываются нужные данные в заранее определенном порядке. То есть первый элемент в строке станет Id, второй элемент будет Title и т.п.
Создание запросов к базе данных MSSQL
До этого мы делали SQL-запросы, которые позволяют модифицировать базу. То есть добавлять в нее новую информацию, создавать таблицы, колонки и строки. Но немаловажным является умение добывать информацию из БД, чтобы отображать ее в интерфейсе приложения или веб-сайта.
Обычно такие запросы указываются в программном коде, но и в SQL Server Management Studio их можно протестировать. Например, чтобы отобразить все строки из таблицы Posts, мы используем запрос:
SELECT * FROM dbo.Posts
В блоке Results отобразятся все строки из таблицы. Здесь же можно их отредактировать, не покидая визуальный редактор.
Программное подключение
Чтобы подключиться к базе данных Microsoft из приложения, необходимо создать функцию соединения с сервером, создав строку, содержащую в себе информацию о сервере. Его название, расположение, а также данные для аутентификации (логин и пароль). Точная схема подключения зависит от выбранного языка программирования. В случае с C#, например, применяется команда SqlConnection и строка connectionString, как показано здесь.
Информацию для других языков можно найти в официальной документации и на Stack Overflow.
Вместо заключения
Теперь вы можете создать локальную копию базы данных Microsoft и добавить в нее всю необходимую информацию. Даже если вы никогда не работали с БД, вы быстро поймете, насколько это логичный и удобный интерфейс для манипуляции контентом. Главное – практиковаться.
При подготовке материала использовались источники:
https://habr.com/ru/articles/756110/
https://timeweb.com/ru/community/articles/osnovy-raboty-s-mssqlserver
https://timeweb.com/ru/community/articles/osnovy-raboty-s-mssql