Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
... и какие при этом есть подводные камни? По некоторым прикидкам, на некоторых базах, которые сейчас используются в нашей организации, выгружаемые для загрузки в хранилище данные перевалят за 2 Гб в виде хмл. Есть ли какие то подводные камни в выгрузке таких данных? Беглое гугление показало, что все озабочены либо загрузкой таких данных (с этим нет никаких проблем, т.к. всё грузится через xml bulk load), либо сохранением таких файлов в blob полях (чего тоже не предполагается). Речь о выгрузки данных, сформированных запросами типа: Код: sql 1. и экспортом их через bcp: bcp "EXEC [dbo].[GET_FIN_PLAN]" queryout "C:\tmp\plan.xml" -S SERVERNAME -U USERNAME -P PASSWORD -w -r (соответственно, в хранимке запрос, типа того, который показан выше, возможно более сложный, но бывает и такой, с учетом того, что vReport - сильнонавороченная view). Либо экспорт производится через самодельное c# приложение, но которое тоже вызывает EXEC [dbo].[GET_что-то-там] , возвращающее единственное поле с хмлем. Мне кажется, что всё должно посыпаться. Пожалуйста, кто с таким сталкивался, подскажите, какие затыки ждут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 16:28 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
uaggster, а что мешает попробовать? есть сомнения что через xml raw можно вытащить больше 2 гигов, как альтернативный вариант можно попробовать старый добрый EXPLICIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 16:36 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
можно, но не более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 16:43 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
WarAntесть сомнения что через xml raw можно вытащить больше 2 гигов,Это же будет колонка типа XML, а её размер ограничен 2^31-1. Как я понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 17:08 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
uaggsterПожалуйста, кто с таким сталкивался, подскажите, какие затыки ждут? Я сталкивался. Ждут вот такие затыки: Код: plaintext 1. И тут не помогут ни самописные скрипты, ни SSIS-пакеты, ни внешние программы, т.к. все они будут пытаться получить xml одним куском. Выход - только bcp, т.к. он выгружает порциями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 17:10 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
Сон Веры ПавловныВыход - только bcp, т.к. он выгружает порциями.Насколько я знаю, не бывает специального "выгружателя" bcp, он точно так же делает чтение из рекордсета. Т.е. собственно "bulk"-операции определены как класс только для вставки данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 17:56 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
Я такое через SSIS делаю Создаем подключение к SQL Создаем подключение к XML - plain-file добавляем колонку xml типа поток текста в юникоде DT_NTEXT 1. Задача потока данных Head Источник - SQL: SELECT [xml] = CONVERT( XML, NULL ) Назначение - XML: метка перезаписать данные заголовок: <root> 2. Задача потока данных Body Источник - SQL: SELECT [xml] = ... FROM ... Назначение - XML: привязать xml <-> xml 3. Задача потока данных Tail Источник - SQL: SELECT [xml] = CONVERT( XML, NULL ) Назначение - XML: заголовок: </root> Запускаем, радуемся жизни, если сможем открыть файл размером более 2Гб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 18:07 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
alexeyvgWarAntесть сомнения что через xml raw можно вытащить больше 2 гигов,Это же будет колонка типа XML, а её размер ограничен 2^31-1. Как я понимаю. вот потому и сомнения что это возможно, а как раз explicit такой проблемой не обладает, так как выгружает поток в виде строк по 2 кб длиной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 19:57 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
WarAntalexeyvgпропущено... Это же будет колонка типа XML, а её размер ограничен 2^31-1. Как я понимаю. вот потому и сомнения что это возможно, а как раз explicit такой проблемой не обладает, так как выгружает поток в виде строк по 2 кб длинойАга, понятно, спасибо вам и Сон Веры Павловны, Руслан Дамирович Но тогда такое поле > 2ГБ можно и из клиента получить? Обычный клиент ведь использует (может использовать) те же методы, что и bcp или SSIS? Руслан ДамировичЗапускаем, радуемся жизни, если сможем открыть файл размером более 2Гб.Ну, его же не надо открывать в редакторе и читать :-) Он для импорта куда то, это всё решаемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 20:23 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
WarAntкак раз explicit такой проблемой не обладает, так как выгружает поток в виде строк по 2 кб длинойfor xml explicit генерирует набор, состоящий из одного столбца типа ntext (или xml, если указано type). Т.е. в этом плане ничем не отличается от raw, auto и path. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 21:46 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
Коллеги, спасибо. Сейчас попробую на тесте, отпишусь. Кстати, попутный вопрос: в filetable тоже не получится сохранить файл, размером более 2 Гб? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 09:19 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
А чем не подошел CSV ??? Он намного быстрее и компактнее. Зачем эти монстры, состоящие на 50-70% из тегов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 10:32 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
LSVА чем не подошел CSV ??? Он намного быстрее и компактнее. Зачем эти монстры, состоящие на 50-70% из тегов ? Там одним xml-ем выгружается весь набор данных, который, для некоторых систем включает по десятку таблиц, а то и больше. С производительностью именно загрузки там особых проблем нет. Через SQLXMLBulkLoad всё вполне себе резво грузится. Схема, в общем, такая: Рабочие системы выгружают данные в хмли, или целиком, или инкрементально, потом их, соответствующий каждому виду данных модуль - грузит в промежуточную базу, а оттуда - апдейтится хранилище. Разработчики уверяют, что так удобнее поддерживать и вносить изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 10:51 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
LSVА чем не подошел CSV ??? Он намного быстрее и компактнее. Зачем эти монстры, состоящие на 50-70% из тегов ? XML и прочие обертки толерантны к содержимому за счет сочетаний <tag></tag>. Хотя спорное утверждение. Но я согласен с вами - XML при таких объемах информации не самый лучший вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 11:30 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
uaggsterРазработчики уверяют, что так удобнее поддерживать и вносить изменения.Так пусть они и занимаются проблемами больших xml. Сегодня 2Гб, завтра 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 12:01 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
uaggsterСхема, в общем, такая: Рабочие системы выгружают данные в хмли, или целиком, или инкрементально, потом их, соответствующий каждому виду данных модуль - грузит в промежуточную базу, а оттуда - апдейтится хранилище. Возникает вопрос, а зачем нужно промежуточное звено в виде XML? - грузите сразу в промежуточную базу. Хотя, если uaggsterРазработчики уверяют, что так удобнее поддерживать и вносить изменения. То вас уже ничто не спасет... выражаю вам свое искреннее сочувствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 12:05 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
LSVuaggsterРазработчики уверяют, что так удобнее поддерживать и вносить изменения.Так пусть они и занимаются проблемами больших xml. Сегодня 2Гб, завтра 10. Потому что часть систем - унаследованно, и разработчиков у них нет. Как сговнякано, так и живет. Временами некие привлеченные специалисты меняют набор выгружаемых данных, просто правя запрос, который формирует данные в хмл, и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:03 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
Руслан ДамировичuaggsterСхема, в общем, такая: Рабочие системы выгружают данные в хмли, или целиком, или инкрементально, потом их, соответствующий каждому виду данных модуль - грузит в промежуточную базу, а оттуда - апдейтится хранилище. Возникает вопрос, а зачем нужно промежуточное звено в виде XML? - грузите сразу в промежуточную базу. Хотя, если uaggsterРазработчики уверяют, что так удобнее поддерживать и вносить изменения. То вас уже ничто не спасет... выражаю вам свое искреннее сочувствие. Я, возможно, неправильно выразился. Исходные системы - они разнородные, от разных разработчиков, вплоть до того, что в разных филиалах софт, выполняющий разные задачи - разный, причем в части филиалов - даже разработчики умерли (и, к сожалению - это не фигура речи). Планово со скрипом заменяется и т.д. А вот целевая система, где, с некоторыми потерями агрегируются данные - она одна. У них разработчики - совершенно конкретные, и у них проблем нету. Они любые файлы могут загрузить, лишь бы ФЛК проходило. Хоть 100 Гб, хоть 200. Совсем никаких проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:08 |
|
||
|
Можно ли выгрузить из sql server XML файл размером более 2 Гб
|
|||
|---|---|---|---|
|
#18+
Руслан ДамировичuaggsterСхема, в общем, такая: Рабочие системы выгружают данные в хмли, или целиком, или инкрементально, потом их, соответствующий каждому виду данных модуль - грузит в промежуточную базу, а оттуда - апдейтится хранилище. Возникает вопрос, а зачем нужно промежуточное звено в виде XML? - грузите сразу в промежуточную базу. Хотя, если uaggsterРазработчики уверяют, что так удобнее поддерживать и вносить изменения. То вас уже ничто не спасет... выражаю вам свое искреннее сочувствие.Что вам не нравится то? XML - вполне нормальный стандарт, всеми понимаемый, можно определить формат данных, документов, транзакций и т.п. Чем лучше, если бы сказали - вот вам "промежуточная база" в постгрессе, лейте туда. А для ещё одной системы нужно выгружать то же самое в промежуточную базу на оракле. И структуры там меняются. А с XML каждый выгружает в стабильно определённый XML, и пусть делают с ним всё что хотят. Понятно, что рецепт не универсальный, но вполне рабочий. Мы вот раньше получали данные из Oracle, Sybase и CSV нескольких форматов, из систем разных вендоров. А потом постепенно перешли на импорт из формата XML, в определённом отраслевом формате, который, само собой, все эти вендоры поддерживают, и стало намного легче. И да, файлы бывают большие, но нам всё равно, мы загружаем, а не выгружаем :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:45 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39581592&tid=1690551]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 251ms |
| total: | 409ms |

| 0 / 0 |
