Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/43: Рейтинг темы: голосов - 43, средняя оценка - 4.91
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429

SQL Server 2017 работа с JSON

02.05.2021, 18:57. Показов 8750. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Использую MS SQL 2017. Имеется каталог с подкаталогами (вложенность - месяц\день, например май\02), в которых находятся .json файлы всегда одинаковой структуры.

Требуется pзанести все существующие файлы в БД и потом опрашивать каталог с подкаталогами и вновь появившиеся файлы заносить в БД. Интересует именно опрос подкаталогов и чтение только новых файлов (с чтением и распихиванием по таблицам .json файлов проблем думаю, не возникнет), можно ли это сделать средствами исключительно MSSQL и агента, не прибегая к помощи какого-либо приложения, написанного на яп.

Наверное python бы с этим справился, но я его к стыду не знаю, хотя разобраться в работе такого скрипта мог бы (знаю php/laravel)

Прошу подсказать. Спасибо
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2021, 18:57
Ответы с готовыми решениями:

SQL Server 2017 WIN10 Ошибка 26
Всем здравствуйте, кто силен в настройках портов на этом сервере помогите , буду благодарен финансово. Суть проблемы, при запуске из визуал...

SQL server 2017 Не принимает clr
Добрый день. CREATE ASSEMBLY MyCLR from 'D:\MyCLR.dll' WITH PERMISSION_SET = SAFE Возвращает ошибку Как я понял гугл у меня...

Не запускается служба SQL Server 2017
Доброго времени.) У меня возникла следущая проблема: В апреле ставила SQL Server 2017 Enterprise edition, всё прекрасно работало, но в...

40
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
03.05.2021, 00:38
через cmdshell получить список файлов\каталогов и сравнить с тем что есть в базе
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
03.05.2021, 09:46  [ТС]
qwertehok, спасибо за ответ.

сравнить с тем что есть в базе
у меня могут образовываться десятки миллионов файлов и столько же лежать в таблице, что гораздо больше чем 2100, тогда where in/where not in не отработает...
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
03.05.2021, 10:05
https://docs.microsoft.com/ru-... rver-ver15
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
03.05.2021, 10:23  [ТС]
спасибо за ответ, invm
Знаком с FileTables. приходилось использовать.
Вы имеете ввиду натравить файловую таблицу на папку с json файлами, и тем самым решить проблему с автоматизацией сбора?

А не будет ли потом проблем с расшифровкой содержимого поля file_stream и path_locator (путь к файлу в этом же поле вроде - он мне нужен будет) из файловой таблицы, например совсем недавно столкнулся с тем, что
T-SQL
1
convert(nvarchar(100),path_locator)
вернул набор непонятных символов)
и возможно ли будет вытянуть из поля file_sream файловой таблицы содержимое json файла, чтобы дальше с ним работать?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
03.05.2021, 11:59
Цитата Сообщение от Landser Посмотреть сообщение
Знаком с FileTables. приходилось использовать.
Не очень верится, иначе не возник бы вопрос о непонятных символах при конвертации path_locator.

Не ленитесь и почитайте документацию. Там все расписано.
Примеры и лекции тоже есть, если их поискать. Например, https://www.youtube.com/watch?v=o0Dm21iliOo
0
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
03.05.2021, 12:26  [ТС]
Не очень верится, иначе не возник бы вопрос о непонятных символах при конвертации path_locator.
Организовывал fulltext search в файлах word, которые лежали в filetable.
Не ленитесь и почитайте документацию. Там все расписано.
Примеры и лекции тоже есть, если их поискать. Например, https://www.youtube.com/watch?v=o0Dm21iliOo
Спасибо за ссылку, посмотрю обязательно
0
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
03.05.2021, 14:31
Цитата Сообщение от Landser Посмотреть сообщение
тогда where in/where not in не отработает
а left join и условие not null?

+тут смотря как искать
вот у нас тоже гигантское хранилище, куча файлов с ГУИД.расширение
мы разбили первые 6 символов ГУИДа по 2 символа и при появлении нового файла проверяем не весь массив данных, а только то, где совпадают первые символы
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
03.05.2021, 16:49  [ТС]
а left join и условие not null?
- не знаю, может быть, ещё не реализовано ничего. но меня зацепила идея с filetables, она вообще шикарна в плане автоматизации сбора, но пока не могу додумать, как из поля file_stream доставать json структуру...
мы разбили первые 6 символов ГУИДа по 2 символа и при появлении нового файла проверяем не весь массив данных, а только то, где совпадают первые символы
а как, если не секрет проверяете у себя? У меня все файлы имеют числовое имя, например 6554546.json, и каждый последующий файл имеет имя большее, чем предыдущий, но заранее неизвестно насколько
0
5966 / 4542 / 1094
Регистрация: 29.08.2013
Сообщений: 28,151
Записей в блоге: 3
04.05.2021, 00:05
Цитата Сообщение от Landser Посмотреть сообщение
и каждый последующий файл имеет имя большее, чем предыдущий, но заранее неизвестно насколько
а получить максимальный из базы и искать в папке на диске только те что больше + сортировка по дате
1
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
04.05.2021, 10:06
Цитата Сообщение от Landser Посмотреть сообщение
как из поля file_stream доставать json структуру...
Сконвертировать в строку и скормить функции openjson
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
04.05.2021, 20:15  [ТС]
qwertehok ,
а получить максимальный из базы и искать в папке на диске только те что больше + сортировка по дате
сегодня увидел, что там ещё буквы могут быть..печаль, но за мысль спасибо

invm ,
Сконвертировать в строку и скормить функции openjson
когда делаю
T-SQL
1
convert(varchar(max),file_stream)
, строка успешно конвертится, но русские буквы идут иероглифами. Возможно ли средствами именно sql (а не приложения), задавать как-нибудь кодировку? (потом собираюсь ключи/значения складывать в таблицу )
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
04.05.2021, 21:17
Кодировка какая у файлов?
0
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
04.05.2021, 21:35  [ТС]
Кодировка какая у файлов?
не скажу точно, под рукой файлов нет сейчас, знаю только, что они генерятся из Postgre, и браузером просматриваются нормально, а когда складываются в файловую таблицу - беда с кодировкой происходит
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
04.05.2021, 22:26
Тогда, по всей видимости, это UTF-8.
В 2017-м нету штатных средств работы с UTF-8.
0
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
04.05.2021, 22:37  [ТС]
В 2017-м нету штатных средств работы с UTF-8.
а в 2019 такие средства есть? Могу в принципе и 2019 поставить, если никак кодировку не обойти..
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
04.05.2021, 22:55
В 2019 есть - https://docs.microsoft.com/en-... -2017#utf8
1
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
04.05.2021, 22:58  [ТС]
В 2019 есть - https://docs.microsoft.com/en-... -2017#utf8
Спасибо за инфу. Завтра поставлю,отпишусь
0
 Аватар для Landser
57 / 7 / 4
Регистрация: 18.04.2009
Сообщений: 429
05.05.2021, 20:31  [ТС]
Поставил 2019.
T-SQL
1
convert(nvarchar(max),[file_stream])
возвращает
≻楆敬慎敭㨢㠢㤹〶㤰⸷獷≤∬潃癮牥}
T-SQL
1
convert(varchar(max),[file_stream])
РЅСѓ РїРѕРятно
Есть ли какие-либо опции, чтобы сконвертить в читаемый вид?
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
05.05.2021, 21:08
Как-то так
T-SQL
1
cast(file_stream as varchar(max)) collate Cyrillic_General_100_CI_AI_SC_UTF8;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.05.2021, 21:08
Помогаю со студенческими работами здесь

Объединить строки MS SQL Server 2017
Подскажите, пожалуйста, как объединить строки в таблице? id(int), A(varchar(50)), B(varchar(50)) id | A | B 1 | 1 | ...

Sql server management studio 2017 не изменяется язык
Здравствуйте, пытаюсь изменить язык с английского на русский, качал уже ssms_rus,после установки язык не сменился, в настройках базы я...

Ошибка при установке MS SQL server 2017
Здравствуйте, помогите, пожалуйста разобраться и исправить ошибку при установке MS SQL server 2017. Устанавливала пользовательский режим....

Работа на SQL Server 2014 по методичке Бурков А.В для SQL server 2008
Всё пока шло нормально, но в лабораторной работе 7.Диаграммы и триггеры возникли трудности. Невозможно создать триггер простым правым...

Как настроить чтобы SQL Agent отрабатывал пакеты SSIS (2017 server)
Как настроить чтобы SQL Agent отрабатывал пакеты SSIS (2017 server) Добавлено через 12 минут Создал credencial (разрешение) на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru