Система управления реляционными базами данных Microsoft SQL Server имеет давнюю историю – идея продукта зародилась еще в середине 80-ых, а первая версия появилась в 1988 году. Его основой стал язык запросов Transact-SQL, созданный совместно Microsoft и Sybase. Стратегия дальнейшего развития Microsoft SQL Server приобрела цельный и завершенный вид в 2010 году. Тогда было объявлено, что SQL Server будет представлять собой единый продукт, реализуемый в настольных системах, в центрах обработки данных и в облаке (в 32- и 64- разрядном вариантах).


В числе приоритетных направлений — бизнес-аналитика (BI) и разработка соответствующих инструментов, развитие экосистемы облачных вычислений с переносом средств бизнес-аналитики в облако, расширение возможностей работы SQL Server Management Studio со средой SQL Azure. Значительное внимание было уделено вопросам масштабирования СУБД, виртуализации приложений в среде баз данных, а также пространственному представлению данных.


Эволюция Microsoft SQL Server. В последних версиях разработчики акцентировали внимание на обработке данных в оперативной памяти (in-memory) и работе с большими данными.

В качестве достоинства СУБД от Microsoft заказчики отмечают простоту внедрения, управления, программирования и обновления.

Microsoft SQL Server 2016


2016 год стал годом очередной смены версий – перехода с Microsoft SQL Server 2005 на Microsoft SQL Server 2016. Ее новые функции и усовершенствования обеспечивают более высокую производительность, усиленную безопасность и полноценные интегрированные возможности в области отчетности и аналитики. Это не радикальная «смена вех», но эксперты называют Microsoft SQL Server 2016 самым значительным обновлением за всю историю продукта. Он включает инструменты расширенной аналитики, машинного обучения, а также новые возможности для анализа и визуализации информации на любых устройствах.


Новая версия Microsoft SQL Server позволяет создавать критически важные приложения для оперативной обработки транзакций (OLTP) с улучшенной масштабируемостью, производительностью при выполнении в памяти и высокой доступностью. При этом обеспечивается согласованность локальной и облачной среды: SQL Server позволяет клиентам получать доступ к данным на локальных серверах и в облаке.

Перечислим некоторые ключевые особенности Microsoft SQL Server 2016:

  • Новая технология постоянного шифрования (Always Encrypted) защищает данные при хранении и перемещении без снижения производительности БД. Безопасность особенно важна при переносе данных в облако, и постоянное шифрование призвано решить эту проблему.


  • Технология Stretch Database позволяет динамически переносить «горячие» и «холодные» данные из SQL Server в облако Azure. Для чего это нужно? В частности, по мере накопления в базе исторических данных возрастает сложность и стоимость ее эксплуатации. Автоматический перенос архивных данных в облако по мере их устаревания — разумное решение. Такие данные перемещаются в фоновом режиме. На приложения и запросы это не влияет.


  • Функция Row Level Security (RLS) позволяет администраторам контролировать доступ пользователей к тем или иным данным и управлять им. Это особенно полезно в ситуациях, когда требуется детальное разграничение доступа, например, в некоторых госструктурах или медицинских учреждениях.


  • Согласованность локальной и облачной среды. Независимо от того, где находятся данные — в корпоративном центре обработки данных, в частном облаке или в облаке Microsoft Azure, — обеспечивается согласованная работа как для сервера, так и для базы данных, предоставляемой в качестве услуги. Поддержка гибридного облака дает возможность распределять нагрузку между локальной и облачной средой. Это означает экономию и гибкость.

  • Высокая производительность Data Warehousing — №1, №2 и №3 в тесте TPC-H 10 Terabyte для некластерных сред и №1 в тесте SAP SD Two-Tier в среде Windows.

  • Поддержка структурированных и неструктурированных данных: запросы PolyBase для данных Hadoop. Можно выполнять запросы реляционных и нереляционных данных, используя простой T-SQL с помощью PolyBase. При этом отдельный Microsoft SQL Server 2016 Enterprise Edition используется в качестве головного узла, а масштабирование осуществляется с помощью нескольких вычислительных узлов Standard Edition.


  • Комплексная мобильная бизнес-аналитика помогает преобразовать данные в полезную информацию, получая ценные сведения на любом устройстве (как с подключением к интернету, так и без него) в виде отчетов. Предлагается более 250 встроенных аналитических функций.


  • Расширенная аналитика в базе данных дает возможность анализировать операционные данные в режиме реального времени и с требуемым масштабом непосредственно в базе данных SQL Server. Тем самым устраняется потребность в их перемещении. Анонсированный Microsoft R Server использует технологии приобретенной компании Revolution Analytics для поддержки Hadoop и Teradata.




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


Оперативная аналитика в реальном времени позволяет быстрее принимать решения.

SQL Server 2016 работает значительно быстрее прежних версий: на том же оборудовании запросы выполняются примерно на 25% быстрее, а при использовании некоторых новых средств SQL Server 2016 с обработкой в памяти выигрыш достигает 30 раз для OLTP-транзакций и 100 раз для запросов (данные Microsoft). Однако и требования к аппаратному обеспечению в новой версии выросли.


Функциональные отличия разных редакций SQL Server 2016.

Функциональные возможности SQL Server 2016


Производительность
Выполнение OLTP в памяти
Хранение столбцов в памяти
Операционная аналитика в реальном времени
Регулятор ресурсов
Хранение запросов
Доступность
AlwaysOn
Расширенная поддержка визуализации и динамическая миграция
Безопасность
Постоянное шифрование
Прозрачное шифрование данных
Безопасность на уровне строк
Динамическая маскировка данных
Поддержка шифрования резервного копирования
Детальный аудит
Разделение обязанностей
Программируемость
Поддержка JSON
Запросы PolyBase для данных Hadoop
Temporal
Готовность к использованию в облаке
Stretch Database
Архивирование в Azure
Аварийное восстановление в Azure
Оптимизированные образы виртуальных машин в коллекции Azure
Управление
Распределенное воспроизведение
Управление на основе политик
Бизнес-аналитика
Усовершенствованные отчеты
Мобильная бизнес-аналитика
Сервисы интеграции, управляемые в качестве сервера
Закрепление отчетов в Power BI
Многомерные семантические модели
Усовершенствованные табличные семантические модели бизнес-аналитики
Сервисы основных данных
Сервисы качества данных
Расширенная аналитика
Расширенная аналитика в базе данных с помощью служб R Services
Многопоточная обработка запросов R и потоковая обработка в памяти
(красным выделены новые возможности, отсутствующие в SQL Server 2014).

В последние годы Microsoft расширила спектр своих предложений. Наряду с SQL Server в ее арсенале есть также Azure SQL Database («СУБД как сервис») и два облачных noSQL-решения — Azure DocumentDB и Azure Tables. В 2016 году корпорация Microsoft сделала еще один важный анонс — представила SQL Server для Linux. Ее платформа для управления данными и бизнес-аналитики стала еще более универсальной, расширив возможности для работы с данными и приложениями с применением разных инструментов, языков и систем в облачной, гибридной или локальной среде. Это еще один шаг в сторону упрощения SQL Server и повышения его доступности. Релиз этой версии ожидается в середине 2017 года.

Встречайте SQL Server для Linux


SQL Server для Linux, созданный на основе SQL Server 2016, предоставляет возможность разработки и развертывания интеллектуальных приложений на единой платформе для управления данными и бизнес-аналитики. Объявленная Microsoft поддержка операционных систем семейства Linux в новой версии SQL Server — очередной шаг корпорации по выходу на рынок Linux-систем после заключения партнерского соглашения с RedHat и Canonical.


C выпуском SQL Server для Linux разработчики получат широкие возможности выбора платформы для приложений, а пользователи виртуальных серверов (VPS) смогут развертывать SQL Server не только под Windows. Приложения SQL Server можно будет запускать в контейнерах Docker.

В частности, некоторые заказчики уже используют сервисы Azure Data Lake на Ubuntu. Теперь разработчики смогут создавать новые приложения со всеми возможностями SQL Server. А сотрудничество с Red Hat означает перенос SQL Server на платформу Red Hat Enterprise: заказчики получат еже более широкие возможности выбора ОС. На сайте SQL Server также уже появилась информация относительно новых возможностей СУБД.

В марте 2016 года была выпущена предварительная ознакомительная версия SQL Server для Linux, содержащая базовые функции системы управления реляционными базами данных. Как ожидается, Linux-версия SQL Server будет иметь уровень производительности, необходимый для решения критически важных задач, низкий показатель TCO (совокупную стоимость владения), высокий уровень безопасности и поддержку технологий гибридных облаков, включая как Stretch Database.
Microsoft подошла к принятию открытого кода еще в 2008 году, когда корпорация присоединилась к фонду Apache Software Foundation. В 2009 году она внесла один из наиболее крупных вкладов в разработку Linux благодаря коду, обеспечивающему виртуализацию на базе гипервизора Hyper-V.
Начиная с 2014 года Microsoft стала еще активнее поддерживать сообщество разработчиков открытого программного обеспечения. Был полностью или частично открыт код платформы .Net, компиляторов С# и Visual Basic, браузера Edge и некоторых других продуктов. Microsoft стала платиновым участником Linux Foundation наравне с Fujitsu, HP, Cisco, Huawei, IBM, Intel, Samsung, NEC, Qualcomm и Oracle. Сегодня она участвует во многих проектах Open Source, которые ведет Linux Foundation, включая CII, node.js Foundation, OpenAPI и OpenDaylight.

Поэтому и поддержка ядра Linux не стала для отрасли неожиданностью. Microsoft не только еще раз продемонстрировала, что играет важную роль в движении Open Source. Выпуск SQL Server для Linux имеет целью расширение рынка: корпорация не желает упускать те 15% мирового рынка СУБД, которые занимают Linux-продукты Oracle и IBM. По данным IDC, Microsoft принадлежит более половины мирового рынка СУБД для Windows. Однако на других платформах лидирует Oracle, доля которой приближается к 50%.


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

Microsoft объявила, что заказчики бесплатно смогут приобрести лицензии на SQL Server при условии, что они решат отказаться от СУБД Oracle. «Перестаньте зависеть от Oracle. Перенесите свои базы данных Oracle на SQL Server и получите соответствующие временные лицензии SQL Server совершенно бесплатно вместе с Software Assurance», — призывает Microsoft на своем сайте. Корпорация даже разработала онлайн-тренинг: «Преобразование бизнеса путем перехода с Oracle на SQL Server».


Компания Canonical уже сделала SQL Server для Linux доступным в образах ОС Ubuntu, которую пользователи устанавливают в Microsoft Azure. Это позволяет им гибко использовать вычислительные ресурсы и недорогое дисковое хранилище. Такой вариант резко снижает общую стоимость платформы. Кроме того, в облачных средах ресурсы оптимизированы под рост рабочих нагрузок. Используя Docker и инструменты оркестрации Canonical, можно гибко наращивать производительность в соответствии с нагрузкой. Azure и контейнерные технологии в среде Linux позволяют реализовать сложные и высоконагруженные проекты без покупки дополнительного оборудования.


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

Выпуск SQL Server для Linux означает, что Microsoft становится поставщиком кроссплатформенных решений. Ранее Microsoft уже перенесла свой Office и Office 365 на платформы iOS и Android. Такие продукты как Microsoft Intune и Azure AD также поддерживают разные устройства.

Проект Microsoft под кодовым наименованием Helsinki предполагает перенос SQL Server на несколько дистрибутивов Linux, включая Ubuntu, Red Hat Enterprise Linux и SUSE Linux Enterprise Server. Это логично дополняет и облачную стратегию корпорации — поддержку IaaS VM в Microsoft Azure для разных дистрибутивов Linux (CentOS, openSUSE, Oracle Linux, SUSE Linux Enterprise Server, Red Hat Enterprise Linux и Ubuntu). При покупке лицензий SQL Server (в расчете на сервер или на ядро процессора) заказчик сможет использовать одну и ту же лицензию в Windows Server и Linux. По программе Software Assurance можно бесплатно получать будущие версии продукта.

Конкурентный анализ рынка РСУБД за последние 30 лет показывает уверенный рост Microsoft SQL Server, особенно после выпуска SQL Server 2000. С поддержкой Linux этот рост мог бы быть еще значительнее. В настоящее время Linux, ПО виртуализации, контейнеризации, оркестрации, прикладные и связующие среды с открытым кодом играют важную роль в публичном облаке. Кроме того, по данным IDC, почти 40% серверов x86 продаются с ОС Linux и треть из них используются как серверы баз данных. Конечно, Microsoft SQL Server не станет продуктом с открытым исходным кодом, но, предлагая его как компонент стека Open Source, Microsoft существенно увеличит число инсталляций. Это серьезный вызов Oracle и IBM DB2 – также проприетарных СУБД для сред Open Source.

Каким он будет?


Следующая версия SQL Server под условным названием SQL Server v.Next предоставит экосистеме Linux возможности СУБД Microsoft, включая SQL Server Agent, аутентификацию в Active Directory, средства обеспечения высокой доступности и аварийного восстановления, безопасности и защиты данных. Предварительная версия SQL Server для Linux уже доступна для Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Ubuntu, а также облачных и контейнерных платформ, таких как OpenStack, Docker Swarm, Kubernetes и Mesosphere D/C OS.


Знакомьтесь: SQL Server для Linux. В него будут включены все основные средства SQL Server 2016.

SQL Server для Linux включает также такие средства SQL Server 2016 как хранение столбцов в памяти, что повышает производительность при выполнении запросов до 10 раз, In-Memory OLTP, благодаря чему скорость по сравнению с хранением таблиц на диске увеличивается до 2,5 раз. А Row-Level Security и Dynamic Data Masking защищают данные на сервере от несанкционированного доступа без внесения изменений в клиентские приложения.

При инсталляции SQL Server 2016 применяются стандартные для Linux методы: yum для дистрибутивов Fedora и apt-get для Debian. Поддерживается запуск по systemd, пути файлов Linux в операторах T-SQL и скриптах. Кластерами высокой доступности можно управлять с помощью таких популярных Linux-инструментов как Pacemaker и Corosync.

Microsoft предлагает также кросс-платформенные инструменты для SQL Server в Linux или Windows, такие как SQL Server Management Studio (SSMS), SQL Server Data Tools (SSDT), PowerShell (sqlps) и недавно анонсированное Visual Studio Code Extension для SQL Server. Поддерживаются также средства Microsoft Migration Assistant для переноса нагрузок. С помощью кросс-платформенных инструментов организации могут уже сейчас начать миграцию на SQL Server для Linux, а в 2017 году перейти на коммерческую версию v.Next.


Непрерывная интеграция и доставка (Continuous integration and continuous delivery, CI/CD) – практика DevOps, которая ускоряет внесение исправлений и изменений, позволяет выпускать продукты на рынок, повышать их качество и надежность.

Благодаря поддержке контейнеров в Windows и Linux ПО SQL Server будет работать под управлением оркестраторов Docker Swarm, Red Hat Open Shift, Mesosphere DC/OS и Kubernetes. С помощью Management Pack for SQL Server для Linux организации смогут использовать System Center Operations Manager для комплексного мониторинга – от аппаратных средств до экземпляров баз данных.

Поскольку SQL Server теперь доступен и для контейнеров, в разработке приложений можно применять некоторые практики DevOps, например, создать образ контейнера для использования в разных ОС. С помощью оркестраторов типа Docker Swarm или Red Hat Open Shift можно быстро обновлять контейнеры в тестовой и рабочей среде.

С выпуском SQL Server для Linux можно использовать базы данных в гетерогенной среде – как на собственных серверах, так и в виртуальных машинах в частных/публичных облаках и у провайдеров услуг VPS/VDS.
Поделиться с друзьями
-->

Комментарии (19)


  1. symbix
    21.11.2016 17:57
    +13

    > «Перестаньте зависеть от Oracle.»

    И начните зависеть от Microsoft.


    1. iborzenkov
      21.11.2016 18:16
      -1

      У них кстати есть отличный слоган
      Microsoft: Будущее зависНит от тебя


  1. fishca
    21.11.2016 18:41

    Сколько будет стоить этот сервер? Или Microsoft позволит его устанавливать бесплатно?


    1. vba
      21.11.2016 18:58
      +6

      Вроде стоить это все будет 1/12 от стоимости оракла, а сколько стоит последний черт его знает.


      1. fishca
        22.11.2016 10:51

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


    1. kxl
      21.11.2016 19:05
      +3

      Как обычно: Express -бесплатно, Standard — за деньги, Entrerprise — за большие деньги… Самое вкусное — только в Enterprise.
      Гляжу вот на слайды и вижу, что даже R умудрились поделить — нормальное распараллеливание только в Enterprise.


      1. Minotaurus
        21.11.2016 19:54
        +3

        Они отдельно выделили момент, многие возможности, ранее доступные только в Enterprise версии, теперь доступны в стандарте.


      1. autuna
        22.11.2016 18:18

        Простите, поправлю Вас.
        Самое вкусное для боевых систем в Enterprise c SA — Failover (один бесплатный Standby сервер) и License Mobility. Годовая подписка на SA — половина стоимости лицензии. Закончилась подписка — закончились права на дополнительные плюшки. Мило, не находите?


  1. PaGrom
    21.11.2016 18:52
    +2

    Надеялся увидеть в статье, что sql server для линукса — это, на самом деле, версия от Windows 8, запущенная на Windows NT, портированном в линуксовый user-space. http://www.theregister.co.uk/2016/11/18/microsoft_running_windows_apps_on_linux/


  1. 776166
    21.11.2016 20:08
    -4

    [offtopic]C каких это пор Microsoft работает на ноутбуке Apple, как на картинке?[/offtopic]


    1. ghostinushanka
      21.11.2016 20:54
      +1

      Года эдак с 2006? Точно уже не помню. Ищите Bootcamp.


  1. samlabs821
    22.11.2016 09:01
    -4

    Huynia!


  1. terra-rock
    22.11.2016 10:55

    Microsoft предлагает также кросс-платформенные инструменты для SQL Server в Linux или Windows, такие как SQL Server Management Studio (SSMS), SQL Server Data Tools (SSDT), PowerShell (sqlps) и недавно анонсированное Visual Studio Code Extension для SQL Server.

    Версий SSMS и SSDT под Linux нет, как может показаться из текста, только утилиты sqlcmd и bcp.


  1. Stroy71
    22.11.2016 15:43
    -1

    Имхо, ставить пропиетарную софтину на опенсорнсную ОС не самое лучшее решение. Есть множество СУБД подходящих для Linux по идеологии.


    1. mayorovp
      22.11.2016 16:09

      И какая из них обладает настолько хорошим оптимизатором запросов?


    1. dgr
      22.11.2016 16:36

      Это вы про Oracle?


    1. mayorovp
      22.11.2016 16:37

      Для сравнения. Простой запрос:


      delete from change_log where id in (select id from change_log limit 100)

      Тут id — первичный ключ, то есть гарантированно уникальный атрибут. PostgreSQL (лучшая из известных мне открытых СУБД) предлагает делать Hash Simi Join таблицы с ней же!


      Если последовать совету из инета и использовать ctid, якобы наиболее быстрый способ — PostgreSQL предлагает делать Merge Semi Join, предварительно сделав Sort для каждого входа… Блин, но ведь ctid — это физический адрес элемента! Достаточно читать записи таблицы подряд — и они окажутся уже отсортированы по ctid!


      Для сравнения, SQL Server в аналогичном запросе видит, что предполагаемое число строк после соединения — 1, и выбирает Nested Loops Join. Тоже не самый лучший вариант (в идеале, надо было вовсе выкинуть соединение) — но тут хотя бы не понадобится полный обход таблицы для удаления какой-то сотни строк!


      Не говоря уже о том, что сам запрос на T-SQL пишется куда проще:


      delete top (100) from change_log


      1. kxl
        24.11.2016 11:12

        Нда… Но, может, быть тут дело в том, что для SQL Server DELETE поодерживат TOP, для Postgres LIMIT в DELETE не реализован?
        Ведь в том случае когда он реализован — он удалит первые несколько строк — неважно в какой последовательности (как думаю, по порядку чтения страниц с диска). Если принять это, то и реализацию внутри можно сделать довольно просто и не особо оптимизируя. Почему не реализовано в Postgres? Может как раз из-за непредсказуемости чтения. Ведь по уму тогда надо и ORDER BY сюда притягивать.


        1. mayorovp
          24.11.2016 11:36

          Разумеется, если бы был limit в delete — он бы работал как надо. Но даже если не использовать в MS SQL Server эту фичу и написать тот же самый запрос что и в Postgres — его план выполнения окажется оптимальнее.


          А непредсказуемость чтения не всегда является недостатком.