2016-04-07 39 views
0

我正在嘗試創建一個將平面文件導入SQL數據庫表的SSIS包。用多種格式文件在SSIS中導入平面文件

大約有30個不同的平面文件,每個平面文件都有自己的格式文件,我必須創建一個包含所有相關數據的表格。 平面文件第一行不包含列標題。 I.E.一個文件可能有PostalAddress1和另一個PostalAddressLine1,這些將會是數據庫中的2列,並且它們將是無效的。 某些平面文件可能包含更多數據,在這種情況下,較少的數據將具有空值。

由於我對SSIS的經驗不足,我以爲我會使用腳本來解析平面文件以獲取行列分隔符以及所有列名稱。 然後,我會設置平面文件源(變量)並將其設置爲只有一列,每個記錄是文本文件中的一行,之後使用腳本轉換來分析每行並將其設置爲相關列。 I.E.值5是姓 我將它設置爲Row.FirstName = Value[4];

整個文件處理的SQL任務可以運行,然後可以從一般的臨時表中的所有數據推入另一個表會說只有唯一的PostalAddress場後而不是說3來適應每個提供的格式文件。

其中一些文件的大小可能高達2.5GB。

我的問題是:

請問這是正確的方式做到這一點?
有沒有更快/更好/更簡單的方法來做到這一點?

回答

0

這是BiML的一個很好的選擇,它可以根據元數據動態構建包。

從BiMLScript介紹:

更妙的是,自動化邏輯可以直接使用BimlScript掘金代碼嵌入到你的BIML 代碼。這些C#代碼片段或VB代碼 使您能夠訪問外部元數據來自動構建大量的Biml代碼。例如,您可以自動創建 登臺環境或基於列元數據應用SCD模式。

+0

我看過BiML,[BIDS幫手插件]。不過,我不知道我將如何動態生成基於元數據的軟件包。據我所知,它只消除了將對象拖放到包上的需要,而只是使用xml編寫整個包。之後建設它。 另外請注意,我創建的SSIS系統必須是一個包,因爲這個包將輪詢一個需要導入的平面文件的表格,並基於平面文件的ID,我們將獲得格式爲它的文件。 並將其插入表中。 – xFrenzy47x

+0

你看過BiMLScript嗎? http://bimlscript.com/walkthrough/Details/3105 –