Что нового в SQL Server 2019? Рассказ о "начинке" новой БД от разработчика

SQL Server 2019 - новые возможности
Doc

Doc

АйТишник со стажем... Профиль автора.

Рассказ об основных возможностях и новшествах в СУБД  Microsoft SQL Server 2019. Повествование ведет Боб Уорд (Bob Ward) – главный архитектор технической группы Microsoft Azure Data SQL Server, которая ведет разработку всех версий SQL Server. Боб проработал в Microsoft более 26 лет; он участвовал в выпуске каждой версии SQL Server, начиная с версии 1.1, поставляемой с OS/2, и заканчивая SQL Server 2019, включая Azure.

В июле 2017 года я регулярно посещал Редмонд (штат Вашингтон) как член команды разработчиков SQL Server. Я живу в Норт Ричленд Хиллз (в шта­те Техас), и современные технологии позволяют мне выполнять большую часть своей работы удаленно, вне стен офиса, где собрана основная часть команды SQL Engineering. Но я все еще немного приверженец «старой шко­лы» и считаю, что в определенных случаях ничто не сравнится с личным присутствием, когда люди собираются вместе за работой. К июлю 2017 года я проработал в команде SQL Engineering более года, уделяя основное внима­ние SQL Server 2016 (пример моей работы над SQL Server 2016 можно найти в интернете по ссылке: https://channel9.msdn.com/Events/Ignite/2016/BRK3043-TS).

До этого времени я был членом знаменитой команды Tiger, но в рамках моего визита в 2017 году меня попросили взять на себя новые задачи, что­бы сосредоточиться на предстоящем выпуске SQL Server 2017. В мои зада­чи входил SQL Server на Linux, что в конечном итоге привело к написанию моей первой книги, Pro SQL Server on Linux («SQL Server на Linux для про­фессионалов»). Поэтому во время моего визита я начал встречаться и беседовать с различными членами коман­ды об SQL Server 2017 - о повышении производительности, общем наборе новых функций и технических подробностях работы SQL Server в Linux и о контейнерах. Одним из людей, с которыми я говорил на той неделе, был Слава Окс (Slava Oks). Слава - ведущий менеджер по разработке SQL Server и один из изобретателей SQL Server для Linux. Он написал предисловие для книги Pro SQL Server on LinuxSQL Server на Linux для профессионалов»), и в этой статье рассказы­вается об истории его участия в проекте. В то время Слава любил прихо­дить в офис рано; когда я нахожусь в Редмонде, я тоже пытаюсь работать в «техасское время» - а это значит, что я тоже прихожу очень рано.

Поэтому мы часто встречались за кофе тогда, когда большинство дру­гих разработчиков еще не добирались до офиса, в здании 16 (хотя сейчас наша команда работает в здании 43). Однажды утром, когда мы со Славой говорили об SQL Server 2017, он спросил меня: «Я рассказывал вам о наших планах относительно следующей версии SQL Server, которая выйдет после SQL Server 2017?» Я, конечно, сделал вид, что помню об этом: «Да, Слава, я слышал об этом, но не знаю подробностей». Затем он пригласил меня прийти на встречу на следующий день, где он объяснил многим из нашей команды инженеров план проекта. Я провел целый год, сосредоточившись на SQL Server 2016, после чего мне поручили погрузиться в SQL Server 2017 и Linux, а теперь Слава хотел, чтобы я узнал о версии, следующей после той, которая пока еще не была выпущена? Конечно, я не собирался отказы­вать ему, потому что - ну, это Слава Окс. Это может прозвучать так, будто Слава - какой-то страшный человек, однако он один из самых приятных людей, которых я когда-либо знал в Microsoft.

Поэтому когда я начинал собирать информацию об SQL Server 2017, я пошел по такому пути: я собирался узнать, что мы делаем для будущей вер­сии SQL Server с кодовым названием Проект SQL Server Сиэтл.

Проект «Сиэтл»

На встрече со Славой на следующий день я быстро узнал, что за несколь­ко часов мы приступили к одному из самых амбициозных усовершенство­ваний SQL Server, которые я когда-либо наблюдал за всю свою карьеру. Я говорю это, уже зная, что мы выводим на рынок SQL Server под Linux, что ранее считалось невозможным.

Слава и команда проекта выбрали для проекта кодовое название «Сиэ­тл», потому что в качестве кодового названия SQL Server 2017 использо­валось «Хельсинки», и команда и искала новое наименование города для кодового названия проекта. По иронии судьбы, никто в Microsoft раньше не использовал название «Сиэтл», поэтому оно быстро прижилось. Я спросил Славу, когда он впервые начал планировать проект «Сиэтл». Я был поражен, услышав ответ: в январе 2017 года. Тот факт, что такие люди, как Слава, Конор Каннингем (Conor Cunningham) и Трэвис Райт (Travis Wright), плани­ровали проект «Сиэтл», работая над завершением SQL Server 2017 на Linux, стал свидетельством их преданности команде, их стремления удерживать SQL Server на позиции лидера инноваций в отрасли баз данных.

Трудно было поверить, что мы могли так быстро запланировать нечто большее, после того как предоставили так много полезных и инновацион­ных функций в SQL Server 2016 и SQL Server 2017.

В SQL Server 2016 мы добавили новые возможности диагностики про­изводительности с помощью Query Store, а именно новые функции для разработчиков, такие как временные таблицы и интеграция c JSON. Мы повысили безопасность работы благодаря технологии Always Encrypted, динамическому маскированию данных и защите на уровне строк. И мы представили две новые инновационные возможности, выходящие за пре­делы «обычных» функций для реляционной системы управления базами данных. Одной из них была интеграция языка R для моделей машинно­го обучения. Второй была интеграция с системами Hadoop при помощи Polybase (что в итоге приведет к чему-то большему в 2019 году; однако я забегаю вперед). Создание возможностей для включения новых сценариев, таких как машинное обучение и большие данные, привело меня и других сотрудников Microsoft к мысли о том, что SQL Server - уже не просто меха­низм управления реляционными базами данных, а платформа данных.

Однако, чтобы создать современную и полнофункциональную платфор­му данных, нам нужно было расширять возможности приложений в систе­мах, отличных от Windows Server. Это привело к появлению в SQL Server 2017 поддержки Linux и Docker-контейнеров. Запуск на Linux и использо­вание контейнеров стали очень большим шагом вперед для Microsoft, но SQL Server 2017 также включал другие возможности, такие как адаптивная обработка запросов (Adaptive Query Processing), автоматическая настрой­ка, графовая база данных, группы доступности вне кластеров и интегра­ция с Python, в дополнение к поддержке языка R для служб машинного обучения.

Учитывая все эти новые возможности, как мы можем за короткий пери­од времени спланировать и создать что-то более новое, замечательное и интересное, чем SQL Server 2016 и 2017? Я задал себе этот вопрос, внима­тельно слушая коллег во время моей первой встречи с командой проек­та «Сиэтл». В первые несколько минут меня познакомят с идеей, которая, когда ее позже объявят общественности, будет считаться довольно ради­кальной. И это новшество было «краеугольным камнем» проекта «Сиэтл», который имеет собственный код проекта: Aris.

Проект Aris

В январе 2017 года Рохан Кумар, корпоративный вице-президент Azure Data, поставил перед Славой и руководством команды разработчиков SQL Server задачу разобраться, как интегрировать SQL Server с большими данными. Большие данные - это термин, широко используемый в отрас­ли и относящийся к системе, которая может обрабатывать большие объ­емы данных, обычно с использованием распределенной масштабируемой вычислительной платформы. Мне лично нравится определение термина «большие данные», сформулированное моим коллегой Баком Вуди (Buck Woody): «любые данные, которые вы не можете обработать в нужное время с помощью имеющихся у вас технологий». В течение многих лет в качестве системы обработки больших данных наиболее часто выбиралась платфор­ма Hadoop. Итак, в течение нескольких месяцев весной и летом 2017 года команда обращалась к Трэвису Райту (Travis Wright) за консультациями о том, как воплотить в жизнь идею интеграции больших данных. Летом 2017 года у нашей команды Azure Data было несколько проектов с кодо­выми названиями «Polaris», «Socrates» (Сократ) и «Plato» (Платон). Я спро­сил Славу: как ты выбрал кодовое название для проекта - Aris? И получил ответ: Сократ был наставником известного греческого философа Платона, а учеником Платона был Аристотель. Учитывая, что Aris - это часть име­ни «Аристотель», а также оно входит в состав кодового названия проекта «Polaris», это новое название, Aris, нашло отклик у всех членов команды и у нашего руководства.

Поскольку интеграция с большими данными подразумевает некоторое отношение к Hadoop, Трэвис провел несколько встреч с командой, которая представила решение Polybase для SQL Server 2016 и хранилища данных Azure. Идея Polybase заключалась в том, чтобы позволить пользователям SQL Server запрашивать (и принимать) данные из системы Hadoop, исполь­зуя привычный язык запросов T-SQL, хорошо знакомый нашим пользова­телям. Кроме того, вместо того чтобы строить простую систему извлечения данных, Polybase могла бы использовать возможности распределенных вычислений, которые существуют в Azure Data Warehouse и Analytics Platform System (ранее известной как Parallel Data Warehouse), для сокра­щения вычислений и распределенной обработки запросов, чтобы достиг­нуть увеличения производительности за счет масштабирования при рабо­те с большими наборами данных в целевой системе Hadoop. Я никогда не видел, чтобы Polybase «взлетела» в SQL Server 2016 и 2017, поскольку инте­грация систем Big Data Hadoop с реляционными системами, такими как SQL Server, была непростой задачей. Polybase требует значительных усилий по установке и настройке, а ее модель политики безопасности отличается от подходов к защите данных, используемых в системах Hadoop и SQL Server. Кроме того, реализация сокращенных («выталкивающих») вычислений опиралась на концепцию MapReduce, для чего требовалось установить Java на том же компьютере, на котором были размещены службы SQL Server и Polybase. Тем не менее архитектура и концепции интегрированных систем SQL Server и Big Data были пригодны для создания чего-то большего (вклю­чая расширение T-SQL под названием EXTERNAL TABLE). Если бы нам уда­лось упростить историю развертывания и настройки Polybase и добавить больше поддерживаемых источников данных, то такое решение могло бы стать более популярным в отрасли. Кроме того, Трэвис очень быстро понял, что если вы хотите, чтобы вас серьезно воспринимали в мире обработки больших данных, вам нужно рассмотреть другую технологию под названи­ем Spark.

Вооружившись этими знаниями, Слава, Трэвис и основная группа чле­нов команды, создавшей SQL Server для Linux, поставили перед собой задачу создать прототип интеграции SQL Server с большими данными, включая Spark. Они устроили многодневную встречу в большом конфе­ренц-зале и назвали ее «Хакатон Aris». Членами команды хакатона были Слава Окс (Slava Oks), Трэвис Райт (Travis Wright), Скотт Конерсманн (Scott Konersmann), Стюарт Падли (Stuart Padley), Майкл Нельсон (Michael Nelson), Пранджал Гупта (Pranjal Gupta), Джарупат Джисарохито (Jarupat Jisarojito), Вейюн Хуан (Weiyun Huang), Джордж Рейня (George Reynya), Дэвид Крайз (David Kryze), Умачандар Джаячандран (Umachandar Jayachandran) из Кали­форнийского университета и Сахадж Сайни (Sahaj Saini). К моменту завер­шения хакатона у них был рабочий кластер, который объединил существу­ющую в SQL Server функциональность Polybase с технологией Spark. На рис. 1.1 показана примерная схема кластера, созданного этой командой.

Первый кластер Aris

Рис. 1. Первый кластер Aris

В своем прототипе они создали кластер Hadoop, включающий компонен­ты для Apache Spark и HDFS, а также SQL Server Polybase. Они использовали Spark для потоковой передачи данных в узлы данных, а затем примени­ли Polybase для объединения данных на главном узле SQL Server с данны­ми, поступающими со Spark в HDFS. Идея прототипа состояла в том, чтобы доказать, что они могут интегрировать Spark, Hadoop и SQL Server.

Примерно в это же время Трэвис разговаривал с инженерами, которые недавно присоединились к команде. Это были сотрудники из компании Metanautix, которую приобрела Microsoft. Благодаря этому приобретению у нашей команды была технология для подключения к ряду источников данных, в том числе ORACLE, SQL Server, Teradata и MongoDB, через ODBC. Команда подумала, что если мы сможем использовать эту технологию в проекте Aris, то в результате получим довольно интересный пример вир­туализации данных. SQL Server теперь может быть центром доступа к дан­ным на разных платформах данных и в разных системах без необходимо­сти перемещения данных на SQL Server (с помощью таких методов, как извлечение, фильтрация и загрузка данных (Extract, Transform, and Load, ETL)).

Прежде чем мы смогли предоставить программное обеспечение, кото­рое пользователи могли бы попробовать и использовать, нам нужно было выбрать платформу для запуска всех этих компонентов. Нам была нужна платформа, которая позволила бы легко развернуть все программное обес­печение, включая Polybase, Hadoop и Spark; обеспечить управляемость и безопасность, гибкое масштабирование и высокую доступность. Казалось логичным использовать контейнеры, учитывая простоту их развертыва­ния, и в SQL Server 2017 мы реализовали поддержку SQL Server в контейне­рах. Следующим шагом был выбор Kubernetes в качестве платформы для создания кластера, в котором работают эти контейнеры. Kubernetes быстро приобретал популярность как платформа, поддерживающая распределен­ные вычисления и масштабируемую производительность. Мы знали, что Linux является предпочтительной ОС для работы с системами Kubernetes и Hadoop, и, поскольку SQL Server уже работает на Linux, он хорошо подходит для создания такой платформы.

Итак, в конце 2017 года наша команда приступила к созданию кластера Aris, который позволил бы реализовать концепцию виртуализации данных и при этом интегрироваться с технологиями больших данных, такими как Spark и HDFS. С самого начала наша команда решила, что все это нужно поставлять как единое решение. Это означает, что если вы приобретаете SQL Server, мы устанавливаем все эти компоненты как часть лицензии (не знаю, будет ли это отдельным видом лицензии, но все это будет включено в SQL Server). Конечный продукт, который вы видите сейчас, -SQL Server 2019 и то, что мы называем кластерами больших данных (Big Data Clusters, BDC), - включает в себя гораздо больше, чем ранние прототипы Aris, но идея и концепция, положенные в их основу, одинаковы: предоставить простую в развертывании платформу виртуализации данных, обеспечивающую мас­штабируемую производительность, безопасность и управляемость.

«Сиэтл» становится SQL Server 2019

В то время как концепция кластеров Aris и больших данных была масштаб­ной, инновационной и, честно говоря, немного пугающей, каждая новая версия SQL Server включала усовершенствования в нескольких областях. Это производительность, безопасность и доступность, три области, кото­рые Конор Каннингем (Conor Cunningham) часто называет «жизненно важ­ными аспектами SQL Server». Наша команда также включила возможность работы с SQL Server на Linux начиная с версии SQL Server 2017. Несмотря на то что первая версия SQL Server для Linux была впечатляющей, оста­валось еще несколько возможностей, имеющихся в версии SQL Server для Windows, которые еще не были реализованы для Linux и которые также было необходимо добавить в версию для Linux. Мы также знали, что у кон­тейнеров большое будущее - в том смысле, что они являются перспек­тивным направлением для развертывания и запуска приложений, и SQL Server - не исключение из этого правила. Таким образом, в этом направ­лении необходимо было проделать определенную работу, включая иссле­дование новых сценариев с кластерами Kubernetes (а не только решение, позволяющее создавать кластер больших данных).

В такой продукт, как SQL Server, вносят свой вклад множество команд разработчиков. Наша команда Enterprise (также известная как Tiger Team) получила информацию о множестве новых возможностей, которые они хотели видеть в новой версии и представляющих реальную ценность для клиента (потому что именно это и является основой разработки новых решений!). Наши друзья, которые изобретают новые возможности для повышения производительности, доступности и безопасности Azure SQL Database, хотели бы увидеть плоды своего труда в проекте «Сиэтл», посколь­ку служба Azure и SQL Server используют одно и то же ядро баз данных. Уви­дев все это в 2017 году, я смог угадать момент исторического релиза.

Когда закончился 2017 год, мы все были настроены на выпуск следующей версии SQL Server, SQL Server 2018. Я видел в этом смысл. Мы выпустили две версии SQL Server за последние годы, SQL Server 2016 и SQL Server 2017, так почему бы не выпустить SQL Server 2018?

Конор Каннингем (Conor Cunningham), наш архитектор продукта, ска­зал мне, что благодаря нашему гибкому подходу к разработке мы можем выпускать новую версию SQL Server хоть каждый месяц, если захотим. И мы можем делать это, не снижая качества выпускаемого продукта. Конечно, мы этого не делаем, потому что хотим выпускать новые версии SQL Server, обеспечивающие должный уровень качества и имеющие гораздо большую ценность для наших клиентов, чем предыдущие. Когда мы начали про­двигаться вперед в работе над нашим проектом в наступившем 2018 году, нам пришлось решить, хотим ли мы выпустить новую версию в этом году. Посмотрев на те новые возможности, которые мы могли бы включить в эту новую версию, включая кластеры больших данных, весной 2018 года мы приняли решение о выпуске нашей первой предварительной версии SQL Server vNext в 2018 году. (Когда мы не знаем точного названия, кото­рое будет иметь следующая официальная версия, даже если у нас уже есть название проекта, например «Сиэтл», мы называем эту будущую версию «vNext».) И вы, возможно, заметили, что мы часто пытаемся делать объ­явления о планируемых важных релизах на больших мероприятиях. Если посмотреть на календарь, одним из крупнейших глобальных событий для клиентов Microsoft была и остается конференция Microsoft Ignite (прово­димая в 2018 году в Орландо и собравшая около 30 000 человек). Поэто­му летом 2018 года наше руководство решило включить предваритель­ную демонстрацию возможностей SQL Server vNext в программу Microsoft Ignite и назвать эту версию SQL Server 2019. Это означает, что мы выпус­тим версию GA (данная аббревиатура означает «в общем доступе», General Availability) где-то в 2019 календарном году.

Подобный подход разделяли все члены нашей команды. Это дало нам больше возможностей для внедрения кластеров больших данных, а также больше возможностей для «традиционного» SQL Server, в основу которых легли отзывы и опыт клиентов. Моя задача в этом проекте - евангелизация и демонстрации SQL Server 2016 и 2017, чтобы показать нашим клиентам, отрасли и сообществу, что мы действительно создали современную плат­форму данных в SQL Server 2019.

 

Модернизация базы данных с помощью SQL Server 2019

На рис. 2 показана основная иллюстрация, с которой я обычно начинаю рассказ про SQL Server 2019. Созданная моей коллегой в Microsoft, марке­тологом Дебби Лайонс (Debbi Lyons) (вы, возможно, видели, как мы с Деб­би иногда появлялись вместе, рассказывая про SQL Server), она представ­ляет собой полную картину новой современной платформы данных SQL Server 2019.

Модернизация средствами SQL Server 2019 

Рис. 2. Модернизация средствами SQL Server 2019

Если вы когда-нибудь слышали мои выступления, посвященные SQL Server 2016 или 2017, то, вероятно, заметили, что этот слайд немного похож на слайды, демонстрирующие возможности прошлых версий. Однако в нем имеется несколько ключевых отличий:

  • интегрированное решение для виртуализации данных, объединяющее Spark, HDFS и SQL Server новым и инновационным способом (образно говоря, SQL Server «подружили с большими данными»);
  • новые возможности использования платформы для наших клиентов, включающие разнообразие вариантов для выбора: Windows, Linux, контейнеры и Kubernetes.

SQL Server продолжает оставаться лидером в отрасли баз данных по про­изводительности и является наименее уязвимой платформой данных за последнее десятилетие. Лицензия SQL Server включает для наших клиен­тов доступ к службам бизнес-аналитики, таким как Power BI Report Server. Кроме того, благодаря новой службе Azure SQL Database Managed Instance функциональность SQL Server практически не отличается при развертыва­нии как в частном облаке, так и в публичном облаке Azure. Однако, достиг­нув такого уровня согласованности, мы не останавливаемся на этом. Ваши навыки в области T-SQL применимы как к SQL Server, так и к Azure, а наши инструменты продолжают бесперебойно работать со службами SQL Server и Azure Data.

Еще несколько возможностей, немного обойденных вниманием при обсуждении новых функций, заключаются в том, что SQL Server (и Azure) предоставляет возможность оптимизировать определенные функции для обработки данных в оперативной памяти, что позволяет максимально эффективно использовать вычислительные ресурсы. Эти новые возмож­ности включают оперативную транзакционную обработку данных в опе­ративной памяти (In-Memory OLTP) и столбцовые индексы (Columnstore Indexes). Все эти функции входят в состав версии SQL Server 2019. На рис. 1.3 представлена более подробная схема основных новых функциональных возможностей, впервые появившихся в SQL Server 2019.

Основные возможности SQL Server 2019

Рис. 3. Основные возможности SQL Server 2019

Я буду использовать эту диаграмму (слева направо, начиная с верхнего левого угла), чтобы выделить основные новые функции SQL Server 2019. Читая про эти новые возможности, имейте в виду, что SQL Server поддерживает Azure SQL Database, а это означает, что многие функции, о которых вы читаете в этой книге, работают точно так же в Azure SQL Database. 

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

Ранее в этой статье мы обсуждали идею виртуализации данных в проекте Aris. SQL Server 2019 является реализацией этого подхода благодаря двум возможностям:

  • Polybase в SQL Server 2019.

Я называю эту возможность Polybase ++, потому что мы расширили функциональность Polybase, поставляемую с SQL Server 2016 (допол­нительную информацию о Polybase см. по ссылке https://docs.microsoft. com/en-us/sql/relational-databases/polybase/polybase-guide?view=sql-server-2017), чтобы предоставить различные коннекторы к источникам данных, включая Oracle, SQL Server, MongoDB (CosmosDB) и Teradata. Вы мо­жете подключиться к этим источникам данных без установки како­го-либо дополнительного клиентского программного обеспечения; встроенные возможности подключения SQL Server к этим источни­кам данных содержат все, что вам необходимо. Кроме того, вы може­те подключиться к другим источникам, таким как SAP HANA, уста­новив собственный драйвер ODBC.

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

Как я уже упоминал, описывая наше видение проекта Aris ранее в этой статье, мы решили создать законченное решение, которое раз­вертывает SQL Server, включающий новые функциональные воз­можности Polybase, HDFS, Spark, а также другие компоненты для управления, безопасности и доступности. 

 

Производительность

Какую бы версию SQL Server мы ни выпускали, мы всегда работаем над производительностью. Всегда. Однако недостаточно просто сделать так, чтобы ваши запросы выполнялись быстро. Нам нужно продолжать совер­шенствовать ядро SQL Server, делая его умнее и интеллектуальнее, предо­ставляя возможности адаптации к вашей рабочей нагрузке, оборудованию и сложным шаблонам запросов. Основные улучшения производительности SQL Server 2019:

  • интеллектуальная обработка запросов, которая является усовершен­ствованной возможностью адаптивной обработки запросов, пред­ставленной в SQL Server 2017;
  • анализ плана запросов в любом месте и в любое время, когда вам это нужно, с использованием облегченного профилирования запросов, плана последнего исполнения и усовершенствованного хранилища запросов;
  • ряд усовершенствований для поддержки баз данных в памяти, вклю­чая усовершенствованный ввод-вывод и гибридный буферный пул для постоянной памяти, а также оптимизированную с точки зрения памяти схему базы данных tempdb. Сочетание этих технологий с такими поддерживаемыми функциями, как столбцовые индексы и OLTP в памяти, делает SQL Server 2019 привлекательным решением с точки зрения технологий баз данных в памяти.

Безопасность

SQL Server является не только наименее уязвимой системой управления базами данных в отрасли за последнее десятилетие, но и включает в себя широкий спектр инструментов, отвечающих современным требованиям безопасности любого бизнеса. В SQL Server 2019 к ним относятся следую­щие улучшения:

  • стратегия шифрования, названная Always Encrypted with Secure Enclaves (постоянным шифрованием с защищенными областями).

В SQL Server 2016 впервые была представлена новая комплексная си­стема безопасности для приложений данных под названием посто­янное шифрование (Always Encrypted). Хотя эта система обеспечивает шифрование в обычном режиме, в оперативной памяти и во всем периметре сети, у нее существует несколько ограничений, наиболее важное из которых - сложные вычисления. Шифрование, использующее концепцию защищен­ных областей (Secure Enclaves), поддерживает сложные вычисления, а также приведу другие интересные сценарии из области безопас­ности;

  • классификация данных и встроенный аудит.

Общий регламент по защите данных (General Data Protection Re­gulation, GDPR) вступил в силу в Европейском союзе (ЕС) в мае 2018 года. С тех пор я общался со многими клиентами из ЕС, а также с компаниями, которые работают с клиентами из ЕС. Наши новые встроенные функции классификации и аудита данных в сочетании с нашими инструментами могут быть очень полезны для сценариев, обеспечивающих соответствие требованиям законодательных ак­тов, как GDPR, так и других, которые могут иметь отношение к ва­шему бизнесу.

Непрерывная доступность, соответствующая требованиям для систем, критичных к сбоям

Быстрота и безопасность - это еще не все, что требуется от современной платформы данных. Клиентам, выбирающим SQL Server для ведения свое­го бизнеса, нужна непрерывная доступность как данных, так и работающих с ними приложений. SQL Server 2019 включает в себя новые возможности для удовлетворения требований к доступности, в том числе:

  • возобновляемое создание индексов онлайн (Resumable Online Create Index) и кластеризованного онлайн-хранилища столбцовых индек­сов (Clustered Columnstore Online Create Index). Создание индексов поддерживается благодаря высокой доступности онлайн-индексов;
  • улучшение нашей инновационной функции HADR в режиме непре­рывной доступности. Поддержка групп, в том числе увеличение ко­личества реплик и перенаправление основного соединения;
  • представьте себе мир, в котором откат транзакции происходит не­медленно, а время, необходимое для восстановления и сокращения журнала, не зависит от длительных или медленных транзакций. Та­кие невиданные доселе возможности обеспечивает ускоренное вос­становление баз данных (Accelerated Database Recovery).

Современная платформа разработки

Может показаться, что все те новые возможности SQL Server 2019, о кото­рых я рассказывал до сих пор, предназначены только для администрато­ров баз данных или ИТ-специалистов. Однако это не так. Мы считаем, что разработчики - это ключевая аудитория, которой SQL Server обязан своим успехом, поэтому мы также инвестировали в следующие новые функции:

  • в SQL Server 2016 мы представили новую платформу для машинного обучения в базе данных с использованием языка R. В SQL Server 2017 мы усовершенствовали эту модель, добавив поддержку Python. Используя эту же инфраструктуру, мы теперь позволяем разработчикам расши­рять язык T-SQL с помощью классов Java. Фактически мы создали SDK расширяемости, чтобы другие языки могли быть частью SQL Server;
  • мы расширили возможности графовой базы данных, которая впер - вые была представлена в SQL Server 2017, и реализовали новые функ­ции для обеспечения этой новой возможности, такие как ограниче­ния ребер и поддержка MERGE;
  • мы хотим, чтобы разработчики использовали типы данных Unicode, поэтому добавили новые представления (т. е. правила для сравнения символов в наборе) UTF-8, которые могут помочь разработчикам управлять данными UTF-8, не увеличивая накладные расходы при работе c типами данных Unicode.

Инвестирование в выбранную вами платформу

Мы запустили SQL Server на Linux в версии SQL Server 2017, но у нас было несколько функций ядра СУБД, которые не вошли в эту версию. Однако мы стремимся к тому, чтобы наши пользователи выбирали операционную систему для запуска SQL Server, не беспокоясь об отсутствии некоторых возможностей в версии для Linux, и в совместимости версий SQL Server для различных операционных систем. Мы расширили возможности версии для Linux в SQL Server 2019, добавив репликацию, отслеживание измене­ний в базе данных (Change Data Capture, CDC), распределенные транзакции (Distributed Transactions, DTC), машинное обучение и группы Polybase.

Мы также потратили немало сил и средств, чтобы добавить в новую вер­сию контейнеры, включая новый реестр контейнеров, поддержку Red Hat Enterprise Linux (RHEL) и постоянную поддержку Kubernetes, в том числе OpenShift. И хотя это выходит за рамки данной статьи, стоит особо упомя­нуть, что мы расширили список поддерживаемых аппаратных платформ для SQL Server, когда в мае 2019 года объявили о выпуске предваритель­ной версии с поддержкой процессоров Arm для Azure SQL Database Edge. Дополнительную информацию об Azure SQL Database Edge вы найдете на странице https://azure.microsoft.com/en-us/services/sql-database-edge/.

Остановитесь и рассмотрите все пиктограммы, иллюстрирующие под­держиваемые платформой компоненты и технологии, потому что SQL Ser­ver - это не просто выбранная вами платформа. Это платформа, обладаю­щая широкими возможностями в плане совместимости. Вы можете создать резервную копию базы данных на любой из этих платформ и восстановить ее без изменений на любой из этих платформ.

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

Azure Data Studio

Основным инструментом - графическим интерфейсом пользователя для работы с SQL Server - на протяжении многих лет остается SQL Server Management Studio (SSMS). В прошлом году мы приступили к созданию нового инструмента для исследования и расширенной обработки данных под названием SQL Operations Studio. В сентябре 2018 года мы выпустили его официальную версию и назвали ее Azure Data Studio (ADS).

Azure Data Studio имеет несколько инновационных технологий, вклю­чая записные книжки, развертывание кластера больших данных, мастера внешних данных, а также инструменты для поддержки SQL Server, HDFS и других служб данных Azure.

Голос клиента

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

Эта версия, следуя традициям общего подхода к выпуску версий, вклю­чает в себя ряд усовершенствований ядра базы данных. Ниже перечислены некоторые из них (однако далеко не все):

  • переработанное сообщение об ошибке, связанной с «обрезанием» строк, включающее передачу контекста, который помогает устра­нить ошибку. Это был № 1 в голосовании клиентов; данное улучше­ние собрало 1000 голосов;
  • новые динамические объекты управления, позволяющие получить представление о внутренней структуре заголовков страниц базы данных (да, вы тоже можете побыть Полом Рэндалом). Они могут помочь в устранении проблем, связанных с блокировкой страниц;
  • улучшения масштабируемости в ядре СУБД, включая параллельные обновления PFS, параллельное массовое добавление данных и до­полнительные контрольные точки.

 

Начало работы с SQL Server 2019

Вот некоторые ресурсы, которые помогут вам развернуть и настроить SQL Server 2019 в процессе подготовки к изучению новых функций:

Загрузка SQL Server 2019

Чтобы загрузить и попробовать поработать с SQL Server 2019, перейдите по ссылке.

Развертывание SQL Server 2019

Инструкции по развертыванию SQL Server 2019 для Windows см. по ссыл­ке https://docs.microsoft.com/en-us/sql/database-engine/install-windows/installation-for-sql- server?view=sql-server-ver15.

Инструкции по развертыванию SQL Server 2019 на Linux см. по ссылке https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-overview?view=sql-server-ver15.

Чтобы узнать, как развернуть SQL Server в контейнере, перейдите по ссылке https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql- server-linux-ver15&pivots=cs1-bash.

Миграция на SQL Server 2019

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

Что нового в SQL Server 2019

Обо всех новых возможностях SQL Server 2019 вы можете узнать, перей­дя по ссылке.

Исходный код и базы данных, используемые в книге

Чтобы иметь возможность работать со всеми примерами, приведенными в этом блоге, вам нужно будет клонировать репозиторий GitHub, создан­ный специально для этой цели, как было упомянуто во введении.

Совет. Для пользователей Windows: обязательно используйте следующий синтаксис git для клонирования репозитория, во избежание проблем со сценариями CRLF для Linux:

git clone --config core.autocrlf=false https://github.com/microsoft/sqlworkshops.git

Кроме того, вам нужно загрузить копии баз данных WideWorldImporters со страницы https://github.com/Microsoft/sql-server-samples/releases/tag/wide-world- importers-v1.0 и WideWorldImportersDW со страницы https://github.com/Microsoft/ sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImportersDW-Full. bak. 

SQL Server: материалы для изучения

На сайте http://aka.ms/sqlworkshops вы найдете еще больше бесплатных обучаю­щих курсов, связанных с SQL Server (этот сайт развивает и поддерживает мой друг и коллега Бак Вуди (Buck Woody), один из лучших инструкторов, которых я знаю).

Это SQL Server вашего дедушки?

Наша команда инженеров внедряет инновации со скоростью, невиданной ни для одного другого конкуриру­ющего продукта или платформы данных в отрасли. И нужно признаться: очень интересно изучать новые вещи.

Возможно, следующая цитата из журнала ITProToday лучше всего расска­жет об этом: «Я никогда не ожидал, что буду обсуждать возможности новой версии Microsoft SQL Server в том же контексте, что и Linux, Oracle и Apache Spark, но это дивный новый мир. Разработка Microsoft SQL Server продви­гается такими темпами, которых нет у конкурентов» (www.itprotoday.com/sql- server/polybase-expansion-big-clusters-are-key-features-new-sql-server-2019).

Я помню, как мой коллега Трэвис Райт (Travis Wright) говорил о SQL Server 2019: «Это не SQL Server вашего дедушки». Это было сказано к тому, что продукт превратился из мощной системы управления реляционными базами данных в современную платформу данных и в настоящее время включает в себя такие технологии, как Spark, HDFS, Notebooks, Polybase, R, Python, Java, Linux, контейнеры и Kubernetes.

Я помню, как разместил эту цитату в Твиттере. Мой коллега Педро Лопес (Pedro Lopes) прочитал ее и сказал, что на самом деле SQL Server 2019 - это «SQL Server вашего дедушки». Так кто же прав? Они оба правы. SQL Server 2019 по-прежнему является системой управления базами данных, которую вы хорошо знаете и любите, - СУБД, обладающей масштабиру­емой производительностью, встроенными механизмами безопасности, удовлетворяющими требованиям критически важных приложений и систем, и высокой доступностью.

 

Вас заинтересует / Intresting for you:

SQL Server 2019: Интеллектуаль...
SQL Server 2019: Интеллектуаль... 2757 просмотров Doctor Mon, 01 Mar 2021, 15:47:54
MS SQL: поиск ключевого слова ...
MS SQL: поиск ключевого слова ... 2843 просмотров Андрей Васенин Wed, 09 Jun 2021, 06:02:30
Медленный поиск в MS SQL 2008:...
Медленный поиск в MS SQL 2008:... 793 просмотров Андрей Васенин Wed, 09 Jun 2021, 18:40:58
Как найти столбец по имени в б...
Как найти столбец по имени в б... 2947 просмотров Андрей Васенин Wed, 09 Jun 2021, 18:38:14
Войдите чтобы комментировать