Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
Добрый день! Имею таблицу с несколькими полями, одно из них содержит XML данные. Необходимо сформировать новую таблицу, XML строку обработать, а другие параметры просто передать как есть. По раздельности проблем нет, а как выполнить эти процессы параллельно? Небольшой нюанс, обработка XML данных порождает несколько новых полей. Для наглядности пример. Таблица "MyTable", помимо поля "XML_COLUMN" содержит ещё несколько данных (к примеру: ListID, ItemID) которые нужно также передать в таблицу "@MatrixCondition". Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:03 |
|
||
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
Максим_78Необходимо сформировать новую таблицу, XML строку обработать, а другие параметры просто передать как есть. По раздельности проблем нет, а как выполнить эти процессы параллельно? Взять ETL инструмент, на каждую строку поставить уникальный id, сделать split, часть столбцов таблицы пустить по одному пути, столбец с XML пустить по другому пути, снова сделать split на 4-8 потоков, в них обрабатывать XML в паралелль (id делить на 4 и по условию отправлять в тот или другой поток), далее сделать слияние в таблицу и записать в режиме fast load. Это же очевидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:12 |
|
||
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
Ну что, завязывайте с sp_xml_preparedocument и осваивайте xml.query... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:13 |
|
||
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
Максим_78По раздельности проблем нет, а как выполнить эти процессы параллельно? Небольшой нюанс, обработка XML данных порождает несколько новых полей. Если нужно внутри MSSQL - берете в руки Visual Studio, пишете на C# обработку с явным разделением XML по потокам, создаете CLR сборку, регистрируете в сервере, вызываете с передачей данных. Тоже достаточно просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:15 |
|
||
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
Andy_OLAPМаксим_78Необходимо сформировать новую таблицу, XML строку обработать, а другие параметры просто передать как есть. По раздельности проблем нет, а как выполнить эти процессы параллельно? Взять ETL инструмент, на каждую строку поставить уникальный id, сделать split, часть столбцов таблицы пустить по одному пути, столбец с XML пустить по другому пути, снова сделать split на 4-8 потоков, в них обрабатывать XML в паралелль (id делить на 4 и по условию отправлять в тот или другой поток), далее сделать слияние в таблицу и записать в режиме fast load. Это же очевидно. охренеть! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:15 |
|
||
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
aleks222Andy_OLAPпропущено... Взять ETL инструмент, на каждую строку поставить уникальный id, сделать split, часть столбцов таблицы пустить по одному пути, столбец с XML пустить по другому пути, снова сделать split на 4-8 потоков, в них обрабатывать XML в паралелль (id делить на 4 и по условию отправлять в тот или другой поток), далее сделать слияние в таблицу и записать в режиме fast load. Это же очевидно. охренеть! Вы предлагаете коллеге сложный путь. query - это нужно документацию читать. А если в штате фирмы есть свой ETL / C# мастер, не проще ли автору темы спихнуть на него раздельную обработку XML. И поставленная задача будет решена. Понимаете? Поставленная задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:17 |
|
||
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
Максим_78, https://docs.microsoft.com/ru-ru/sql/t-sql/xml/nodes-method-xml-data-type?view=sql-server-2017 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 13:33 |
|
||
|
Обработка XML с передачей других данных
|
|||
|---|---|---|---|
|
#18+
Andy_OLAPМаксим_78Необходимо сформировать новую таблицу, XML строку обработать, а другие параметры просто передать как есть. По раздельности проблем нет, а как выполнить эти процессы параллельно? Взять ETL инструмент, на каждую строку поставить уникальный id, сделать split, часть столбцов таблицы пустить по одному пути, столбец с XML пустить по другому пути, снова сделать split на 4-8 потоков, в них обрабатывать XML в паралелль (id делить на 4 и по условию отправлять в тот или другой поток), далее сделать слияние в таблицу и записать в режиме fast load. Это же очевидно. Ээээ... Верю, что должно быть очевидно, но... Надо переварить предложенный метод. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 14:40 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39764242&tid=1688401]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
134ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 273ms |
| total: | 496ms |

| 0 / 0 |
