我有一个如下所示的文件;请帮助如何通过SSIS导入它。问题是如何跳过起始行,因为文件的其余部分已将所有列选项卡分开。我还需要来自标题行的一些信息,如BSC的名称将用作另一列。
BSS release : 11
Name of BSC : E344_JUB4
Type of measurement : RT110_CELL/TRX related overview counters
Measurement begin date and time : 5/21/2012 7:00
Measurement end date and time : 5/21/2012 8:00
Input file name : /alcatel/var/share/AFTR/APME/BSC/PMRES110.30A.16.E344_JUB4.2012-021.05:00:29.35.259
Output file name : /alcatel/var/share/AFTR/APME/OBSYNT/E344_JUB4/20120521/R11000008.142
BTS_INDEX BTS_SECTOR CELL_NAME CELL_CI CELL_LAC BSC_MCC BSC_MNC MC01 MC02 MC02A MC02B MC02C MC02D MC02E MC02F MC02G MC02H MC02I MC03 MC04 MC07 MC10 MC101 MC1040
1 1 JUB3227_4 32274 3719 420 F03 246 597 264 23 37 1 0 0 30 242 0 0 0 0 0 0 0
1 2 JUB3227_5 32275 3719 420 F03 331 6508 6118 25 51 3 0 0 40 271 0 0 0 0 0 0 0
1 3 JUB3227_6 32276 3719 420 F03 156 640 294 75 40 2 0 0 24 205 0 0 0 0 0 0 0
10 1 JUB3227_1 32271 3719 420 F03 151 1821 1584 17 36 3 0 0 8 173 0 0 0 0 0 0 0
答案 0 :(得分:0)
假设您的文件具有固定数量的标题行,则以下内容应该有效;
将源的读取分成两个单独的数据流。第一个传递标题;细节的第二个。
在第一个流中,将文件视为冒号分隔。添加源(Excel?)控件,将数据访问模式更改为“SQL命令模式”。添加一个SQL语句,如SELECT top 2 f1 FROM [Sheet1 $]。这将从第一个工作表中选择前2行并仅返回f1列。您需要调整文件,以覆盖所需的标题行数。
添加派生列以将Name:Value对拆分为两个。创建3个新的派生列 - First =“Name”,表达式为LEFT(f1,FINDSTRING(f1,“:”,1) - 1) - Second =“Value”,表达式为RIGHT(f1,LEN(f1) - FINDSTRING(f1,“:”,1) - 1) - 第三个=表达式1的“关键”
添加Pivot控件以将许多行(每个参数一个)切换为多个列。输入“Name”作为Pivot Key,“Key”作为Set Key,“Value”作为Pivot Value。在“输出值”部分的“生成数据透视表列”中,输入每个标题名称的值,即[BSS版本],[BSC名称],[...]这将生成一行,其中所有标题值都作为列。然后,您可以将其与详细数据结合使用,也可以单独存储。
在详细信息源中,将连接设置为跳过标题行x以绕过标题信息。像没有标题信息的文件一样对待。使用派生列组件将文件名等变量添加到行中。