2

我有一个如下所示的文件;请帮助如何通过 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
4

1 回答 1

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 控件以将多行(每个参数一个)切换到多列。输入“名称”作为枢轴键,“键”作为设置键,“值”作为枢轴值。在“从输出值生成数据透视表列”部分中,为每个标题名称输入一个值,即 [BSS 版本]、[BSC 名称]、[...] 这将产生一个包含所有标题值作为列的单行。然后,您可以将其与您的详细数据结合起来,或单独存储。

在详细信息源中,将连接设置为通过 x 跳过标题行以绕过标题信息。像对待没有标题信息的文件一样对待。使用派生列组件将文件名等变量添加到行中。

于 2012-11-15T17:11:21.640 回答