2009-09-14 49 views
1

我们正在评估SSIS,看它是否适合即将推出的新项目。其中一个进程将不得不处理带有分隔记录的平面文件。该文件将包含订单。有一个标题行,(可选)送货地址行和一个或多个明细行。每行的字段都是分隔的,但格式不同。使用SSIS读取多种记录类型的平面文件

我读到这样的回答:

SSIS transactional data (different record types, one file)

而且我可以分割使用的条件性拆分任务产生多个输出数据,但我不知道如何从那里继续。我有我需要解决两个问题:

  1. 订单表头应该先插入,因为地址和细节将引用订单记录的地址和细节之前,所以我想我需要处理输出第一,但我不确定在SSIS如何使条件拆分任务的分支在之前的其他分支处理。理想情况下,我想处理订单标题,然后将订单ID存储在用户变量中,以便在处理详细信息时可以引用该变量。

  2. 该文件中会有多个命令,因此分割它更复杂。

我总是可以在C#中编写一个应用程序来预处理文件或将文件读入临时表,但我不确定我喜欢那种方法。

任何经历过这个过程的人都可以分享他们如何处理它的一些见解吗?

感谢,

克里斯

回答

2

拆分后,存每种类型的记录到它自己的临时表 - 或成SSIS原始数据的目的地,这是速度更快,对于像这样的中间步骤。然后将所有标题加载到它们的最终表格中,然后继续执行,无参考错误。

我假设详细记录有一个headerID在他们?这应该使你的第二个问题容易处理。如果没有,请告诉我们。

+0

谢谢,我会测试一下。我对原始数据目的地不是很熟悉。我曾想过使用临时表,但想知道是否有其他选择。再次感谢。 – 2009-09-16 15:25:40