如何在SSIS中解析文本文件
how to parse a text file in SSIS
我有一个文本文件,我想将其解析为多个文本文件。文件太大,无法在 Excel 中打开。所以,我最好的猜测是以某种方式在 SSIS 中执行此操作。 (真的,因为这就是我目前所知道的全部。)我可以在 Notepad++ 中手动完成,但我需要一个自动化的解决方案。
源文本文件没有headers,有不同列数的记录,所有相似的记录都放在一起,文件是pipe-delimited。
这是我要解析的示例文本文件:
A|stuff CRLF
A|more_stuff CRLF
B|stuff|more_text CRLF
B|more_stuff|yet_more_text CRLF
(CRLF 是 end-of-row 分隔符。如您所见,'A' 记录的列数与 'B' 记录的列数不同。)
我想将第一列中具有相同值的所有记录放入单独的文本文件中。也就是我想把所有'A'条记录放到一个文本文件里,我想把所有'B'条记录放到另一个文本文件里。我不想经历 SQL table。这在 SSIS 中可行吗?如果是这样,我该怎么做?如果不是,什么工具最适合这种情况?
将数据流任务添加到包后,您可以使用条件拆分。在条件拆分中,您需要使用某种表达式来标记 A 和 B 正在使用的内容。在您的情况下,它将是这样的:Output Name = A,Condition 将是 [Name of Column] == "A"。对 B 也做同样的事情,然后当您将输出箭头连接到平面文件目的地时,您可以选择将哪个输出与哪个文本文件放在一起。
可以通过 Flatfilesource 、Derivedcolumns、ConditionalSplit 转换来实现。表示具有单列的每一行。为此,给出输入文件中没有的列分隔符(例如 ^)。
z.png
我有一个文本文件,我想将其解析为多个文本文件。文件太大,无法在 Excel 中打开。所以,我最好的猜测是以某种方式在 SSIS 中执行此操作。 (真的,因为这就是我目前所知道的全部。)我可以在 Notepad++ 中手动完成,但我需要一个自动化的解决方案。
源文本文件没有headers,有不同列数的记录,所有相似的记录都放在一起,文件是pipe-delimited。
这是我要解析的示例文本文件:
A|stuff CRLF
A|more_stuff CRLF
B|stuff|more_text CRLF
B|more_stuff|yet_more_text CRLF
(CRLF 是 end-of-row 分隔符。如您所见,'A' 记录的列数与 'B' 记录的列数不同。)
我想将第一列中具有相同值的所有记录放入单独的文本文件中。也就是我想把所有'A'条记录放到一个文本文件里,我想把所有'B'条记录放到另一个文本文件里。我不想经历 SQL table。这在 SSIS 中可行吗?如果是这样,我该怎么做?如果不是,什么工具最适合这种情况?
将数据流任务添加到包后,您可以使用条件拆分。在条件拆分中,您需要使用某种表达式来标记 A 和 B 正在使用的内容。在您的情况下,它将是这样的:Output Name = A,Condition 将是 [Name of Column] == "A"。对 B 也做同样的事情,然后当您将输出箭头连接到平面文件目的地时,您可以选择将哪个输出与哪个文本文件放在一起。
可以通过 Flatfilesource 、Derivedcolumns、ConditionalSplit 转换来实现。表示具有单列的每一行。为此,给出输入文件中没有的列分隔符(例如 ^)。