【发布时间】:2014-04-09 16:21:49
【问题描述】:
我正在尝试转换具有如下布局的文件:
id1 | id2 | id3 |...| id34 | A | B | C | A | B | C | A | B | C | 100 group of A B C|
a1 | b1 | c1 |...| aa1 | 3 | 7 | 5 | 7 | 5 | 3 | 1 | 1 | 1 | ... |
a2 | b2 | c2 |...| aa2 | 4 | 3 | 7 | 0 | 4 | 8 | 9 | 8 | 4 | ... |
输出应该是:
id1 | id2 | id3 |...| id34 | A | B | C |
a1 | b1 | c1 |...| aa1 | 3 | 7 | 5 |
a1 | b1 | c1 |...| aa1 | 7 | 5 | 3 |
a1 | b1 | c1 |...| aa1 | 1 | 1 | 1 |
a2 | b2 | c2 |...| aa1 | 4 | 3 | 7 |
a2 | b2 | c2 |...| aa1 | 0 | 4 | 8 |
a2 | b2 | c2 |...| aa1 | 9 | 8 | 4 |
我目前正在通过脚本转换组件进行操作 但是速度很慢。
我对 Pivot 和 Unpivot 组件不是很熟悉
是否有任何选项可以设置行组| A | B | C |
并且 SSIS 会将其视为一组并将其转换为我想要的格式?
提前致谢!!
【问题讨论】:
-
很确定脚本转换是这里的方法。我们在这里说话有多慢?您使用哪些 C# 字符串操作函数来拆分行?可能是您的代码可以改进以提高性能。数据是固定长度格式吗?或者管道分隔是如何定义字段的?
-
我目前正在做
myoutputBuffer.id1 = Row.id1;我只是将一组 id 与相应的 A B C 一起拉到行中,然后在下一行相同的一组 id 和下一组 A B C 等等,我是也进行转换myoutputBuffer.A = Convert.Toint32(Row.A)actully m 将数据加载到 SQL SERVER,所以我需要转换为 Int,我的输入数据是管道分隔的。