Итак, я только что начал diggin SSIS сегодня, поэтому не слишком сильно ненавижу, если есть что-то очевидное, чего я не вижу.SSIS: от XML-файла до нескольких таблиц
Так у меня есть XML-файл (от третьих лиц)
<root>
<foo>
<fooId>12345</fooId>
<name>FOO</name>
<bars>
<bar>BAR 1</bar>
<bar>BAR 2</bar>
[...]
</bars>
</foo>
[...]
</root>
и соответствующие таблицы в моей БД:
Foo с полями (FooID, имя)
Бара с полями (BARID (идентичность ПК), FooID, Name)
Итак, в основном, Bar - это набор атрибутов для Foo.
Поэтому я добавляю источник XML, который указывает на этот файл, и он создает 3 разных набора данных (foo
, bars
, bar
). Проблема в том, что набор bar
содержит значение bar
+ некоторый автогенерированный идентификатор, что не очень полезно. Единственный способ, который я вижу отсюда, чтобы получить bar
с bar
значением и fooId
, - это сортировка и слияние - объединение этих наборов, что кажется довольно странным и, вероятно, будет зверски убивать производительность (мы говорим о сотнях K's foo здесь).
Вопрос: как это сделать должным образом?
Это то, что я делаю прямо сейчас ... То, что я ожидал найти, - это возможность просто добавить столбец в набор подэлемента из его родительского элемента, поскольку он уже задан структурой, но там кажется, нелегкий способ сделать это (или, может быть, я слепой?) –
Итак, я бы попытался использовать подход XSLT. Это сгладит схему XML до такой степени, что вы можете получить только один вывод из источника данных XML. Как ни парадоксально, что мы используем XSLT, чтобы заставить XML работать как плоский файл. –