Новость из категории: Информация

SQL Server 2016: интеграция c JSON

SQL Server 2016: интеграция c JSON

До появления версии SQL Server 2016 желающим реализовать нотацию объектов javascript в SQL Server приходилось самостоятельно заботиться о поддержке языка JSON. Версия SQL Server 2016 дополнена встроенной поддержкой JSON с возможностью форматировать и экспортировать данные в нотации JSON; загружать текст JSON в таблицы; извлекать значения из текста JSON; индексировать свойства в тексте JSON. Главная тема версии SQL Server 2016 — широкое применение «облака» и «облачных» служб, но при этом легко упустить из виду такое новшество, как встроенная поддержка JSON (нотация объектов javascript). JSON — упрошенный формат обмена данными на основе подмножества языка программирования javascript. Его просто понять человеку и удобно анализировать и формировать компьютеру. Поэтому JSON представляет собой широко распространенный формат для обмена данными в современном «облаке», Интернете и мобильных приложениях. JSON также используется для хранения неструктурированных данных в файлах журналов и базах данных, отличных от SQL, таких как Hadoop, Couchbase Server и Microsoft Azure DocumentDB. Многие веб-службы REST возвращают результаты и принимают входные данные в формате JSON.

Базовая структура JSON

Если вы не знакомы с JSON, важно понять, что в его основе лежат две базовые структуры: коллекция пар имя/значение и упорядоченный список значений. Пример структуры имя/значение JSON показан ниже:
{
“id": 1,
“name": "A green door’,
“price": 12.50,
“tags": ["home", "green"]
}

Эта текстовая структура очень удобна для обмена данными между системами.



Поддержка JSON в SQL Server 2016

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

Поддержка JSON в SQL Server 2016 отличается от поддержки языка XML, располагающего собственным типом данных. JSON, напротив, реализуется как тип NVARCHAR. Это избавляет от необходимости изменять схему базы данных и перезагружать данные для использования новой интеграции JSON. Применение NVARCHAR также приводит к тому, что JSON поддерживается всеми компонентами SQL Server, которые поддерживают тип NVARCHAR. В сущности, это означает, что JSON будет поддерживаться всюду, в том числе при использовании технологии In-memory OLTP, индекса columnstore, служб SSIS и SSAS. Даже новые функции безопасности, такие как Always Encrypted («Всегда зашифровано»), безопасность на уровне строк и прозрачное шифрование данных, будут поддерживать JSON.

SQL Server 2016: интеграция c JSON

Интеграция реляционных данных и JSON

SQL Server 2016 позволяет экспортировать реляционные данные в формате JSON для удобного использования в веб-службах и «облачных» службах, а также преобразовывать данные JSON в реляционные данные. Обзор поддержки JSON в SQL Server 2016 представлен на рисунке 2.

Чтобы экспортировать реляционные данные в формате JSON, необходимо задействовать новый оператор FOR JSON с предложениями T-SQL SELECT. Добавление оператора FOR JSON в запрос T-SQL SELECT приведет к форматированию результатов запроса как JSON и возвратит данные в формате JSON клиенту. Каждая строка в наборе результатов будет форматирована как один объект JSON.

Для преобразования текста JSON в реляционные данные специалисты Microsoft добавили функцию OPENJSON. OPENJSON - функция с табличным значением (TVF), которая принимает в качестве входных данных текст JSON и формирует для каждого элемента одну строку реляционных данных в результатах выполнения. OPENJSON обеспечивает представление документа JSON в виде набора строк с возможностью указать столбцы в наборе строк и мути к свойству для заполнения столбцов. Результаты функции OPENJSON можно использовать в предложении T-SQL FROM, как любой другой набор столбцов.

SQL Server 2016: интеграция c JSON

Функции JSON

SQL Server 2016 также располагает несколькими встроенными функциями для работы с данными JSON:
• JSON_VALUE — извлекает скалярное значение из строки JSON;
• JSON_QUERY — извлекает объект или массив из строки JSON;
• ISJSON — проверяет, содержит ли строка допустимый JSON.

Рейтинг статьи

Оценка
4/5
голосов: 1
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх