powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение больших файлов xml в БД
25 сообщений из 30, страница 1 из 2
Хранение больших файлов xml в БД
    #40090394
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо хранить большие по объему xml файлы. Но хранить в таблицах считаю неправильным, на файлов диске вроде тоже. Посмотрела из встроенных систем хранения данные в MSSQL Server предлагается: FILESTREAM, FileTable и удаленное хранилище больших двоичных объектов. Статью Сравнение параметров для хранения больших двоичных объектов Но все как-то куцо написано. Хотелось бы плюсы и минусы каждой технологии. Сейчас используется MSSQL Server 2019.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090408
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разжевать и покормить с ложечки?

Огласите ваши представления о "православном" хранении.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090450
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975,

файлы обычно хранят в папках, а не в базе данных. Более того, NTFS и есть база данных.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090455
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Разжевать и покормить с ложечки?

Огласите ваши представления о "православном" хранении.
на бобинах
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090483
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Hel975,

файлы обычно хранят в папках, а не в базе данных. Более того, NTFS и есть база данных.

Одно время работал с системой (лет 15 назад) , в которой все документы типа WORD,EXCEL хранились в базе, в бинарных полях.
Нормально!
Была сделана грамотная система ввода-вывода и никаких проблем.

Как и где хранить - пофиг, если это не оскорбляет ваших религиозных чувств.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090489
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

а смысл в чём такого хранения?
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090516
sergeyns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит большие? Каждый по десятки гигов? Сколько всего? Если у вас в итоге счет на ПТ, то, наверно да, в базу не надо ))

Например Filenet от IBM в некоторых случаях рекомендует хранить файлы в блобах в БД (хотя в норме предполагает таки хранения на дисках).
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090520
sergeyns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
SQL2008,

а смысл в чём такого хранения?

у каждого свои погремушки )) Например, админы шаловливыми ручками не залезут в файлике на диске))) Проще сделать шифрование.
А "просто" положить файлы на диск - 90% разработчиков при такой реализации забывают про ограничения файловой системы ))) Хотя это было более актуально в FAT, в NTFS ограничения слабее)), но все равно при сотнях тысяч документов в одной папке начинаются тормоза.. Значит нужно создавать дерево папок.. и тут эти 90% задают вопрос "в чём смысл такого" )))
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090527
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergeyns,

да, по-моему, не рекомендовано больше 10000 файлов на папку для NTFS.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090562
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergeyns
о десятки гигов? Сколько всего? Если у вас в итоге счет на ПТ, то, наверно да, в базу не надо ))

Например Filenet от IBM в некоторых случаях рекомендует хран


Пару гиг - это исключение. Ежедневно приходит некоторое кол-во файлов, сами размеры не очень большие, но за год таких файлов может быть несколько миллионов и их надо хранить несколько лет в том виде, в котором пришли и как в данные в бд.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090574
sergeyns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975
sergeyns
о десятки гигов? Сколько всего? Если у вас в итоге счет на ПТ, то, наверно да, в базу не надо ))

Например Filenet от IBM в некоторых случаях рекомендует хран


Пару гиг - это исключение. Ежедневно приходит некоторое кол-во файлов, сами размеры не очень большие, но за год таких файлов может быть несколько миллионов и их надо хранить несколько лет в том виде, в котором пришли и как в данные в бд.

Ну если всё это влезет на "ОБЫЧНЫЙ" диск и нет особых требований по отказоустойчивости, секретности, правам доступа, аудиту и тд тп, то кладите на диск (например на каждый день или час в году - своя папка) и не парьтесь. Это будет самое простое и вполне рабочее.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090576
sergeyns
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot sergeyns#22359159]
Hel975
пропущено...

требований по отказоустойчивости, секретности, правам доступа, аудиту и тд тп, то кладите на диск (например на каждый день или час в году - своя папка) и не парьтесь. .


Кстати, жесткие требования к отказоустойчивости - это один из кейсов когда можно класть файлы в БД. Ибо пока файл не запишется - транзакция не закончена. А если писать в файл - то это начинается трудный выбор между синхронным и асинхронным (придется обеспечивать "транзакционность" самому) + обычная запись в файл не гарантирует файла на диске (типа питание вырубилось в момент когда вроде бы ваше save_to_xml отработало, а вот кэш диска - на самом деле нет)
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090594
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975,

если вы работаете с таком объемом данных, то есть смысл подумать о специализированном файловом сервере, а не пользоваться суррогатами.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090604
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

Я и думала, чем лучше воспользоваться FileTable или удаленным хранилищем больших двоичных объектов (RBS). Но т.к. ни с тем, ни с другим не работала, то решила спросить про подводные камни и проблемах в эксплуатации. А в ответ - закидали помидорами.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090607
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975, а вариант хранить не файлы, а данные из XML, не вариант?
И если потребуется данные извлечь, просто делаем обратное преобразование.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090613
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synoptic
Hel975, а вариант хранить не файлы, а данные из XML, не вариант?
И если потребуется данные извлечь, просто делаем обратное преобразование.
завтра довавят в хмл новый узел или удалят и кирдык твоим данным
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090614
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
SQL2008,

а смысл в чём такого хранения?

Там было приложение из которого сразу открывались документы, правились и сохранялись обратно.
В чем был особый смысл не скажу )
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090619
Synoptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter
завтра довавят в хмл новый узел или удалят и кирдык твоим данным
Ну если получение данных это не манна небесная, а всё же управляемый процесс, то такого не будет. XML прекрасно ложится в реляционную БД. Ну да, придётся дописать импорт/экспорт, возможно структуру БД. Но по мне так это более правильно, чем хранить миллиард файлов. ИМХО, конечно.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090621
Hel975
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synoptic,

Данные из xml тоже будут храниться в таблицах. Весь смысл в том, чтобы еще и хранить сами оригинальные пришедшие файлы. Думаю, что так же должен быть запрет к редактированию этих данных. Понятно, что от админов ничего не скроешь, но у большинства пользователей не должно быть доступа к файлам.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090637
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Synoptic
Relic Hunter
завтра довавят в хмл новый узел или удалят и кирдык твоим данным
Ну если получение данных это не манна небесная, а всё же управляемый процесс, то такого не будет. XML прекрасно ложится в реляционную БД. Ну да, придётся дописать импорт/экспорт, возможно структуру БД. Но по мне так это более правильно, чем хранить миллиард файлов. ИМХО, конечно.
Файл, во первых, может быть битый, который не распарсить.
Во вторых, структуры данных за много лет и за десятки-сотни изменений могут так преобразиться, что сделать реверс-инжениринг пришедших данных будет очень сложно.

ИМХО в реально используемой системе хранить в неизменном виде то, что пришло, нужно обязательно.


Hel975
Владислав Колосов,

Я и думала, чем лучше воспользоваться FileTable или удаленным хранилищем больших двоичных объектов (RBS). Но т.к. ни с тем, ни с другим не работала, то решила спросить про подводные камни и проблемах в эксплуатации. А в ответ - закидали помидорами.
Ну, люди просто о деталях задачи расспрашивают.

1. Если вы парсите данные в БД, и файлы вам нужны для фиксации исходников, вы их не будете обычно использовать системой после импорта, то лучше вообще с сиквелом файлы не завязывать, зачем это нужно?
Храните файлы в ФС, а в сиквеле ссылки. Притом ФС может быть какой угодно, без ограничений.
Усложнение ради красоты и ради "попробовать новую фичу" есть признак кривой архитектуры, и джуниор-архитектора.

2. Если вы будете часто использовать файлы внешними приложениями, и контролировать сиквелом, то как вариант можно рассмотреть FileTable.

3. FILESTREAM вообще имеет очень узкое применение - по сути, активное использование контента файлов сиквелом, и больше ничего.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090644
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975,

храню все пришедшие xml в поле типа varchar(max) но прогоняю после разбора через функцию compress() (появилась в 2016)
остается максимум 7-10% очень хорошее сжатие. пробовал хранить с типом xml - sql в этом случае уменьшает размер до %50-60 от исходного.
был вариант хранить в varchar(max) в отдельном разделе со сжатием, места меньше чем xml, но значительно хуже чем жмет функция.
вариант с xml в отдельном разделе со сжатием экономии не дает.

один минус - в xml больше 2 гиг не влазит.
и учтите, что больше 1,6 гига из xml практически невозможно конвертнуть в nvarchar(max), а сразу в varchar(max) может не получится.

хочу перейти на json, только на одних тэгах можно сильно сэкономить.

с другими вариантами не пробовал.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090647
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Filetable - это гаджет для SOHO баз, никак не промышленный mainstream. Не советую пользоваться при таких объёмах.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090659
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
Filetable - это гаджет для SOHO баз, никак не промышленный mainstream. Не советую пользоваться при таких объёмах.

FileTable хранят файлы в папках NTFS.
Ты знаешь файловую систему круче и "промышленнее"?

ЗЫ. А еще они могут использовать сжатие NTFS. На XML-файлах это, минимум, 50% экономии.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090690
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel975,
У нас все складывается в архивную папку архиватором 7z (компануя по месяцам), если распарсилось.
То что не распарсилось, тоже в 7z, но Reject папку.
...
Рейтинг: 0 / 0
Хранение больших файлов xml в БД
    #40090740
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

не все так просто, это не папки, а сетевые шары. И работает это крайне медленно в некоторых случаях.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Хранение больших файлов xml в БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]