我對SQL Server 2005有一個ETL類型要求。我是SSIS的新手,但我相信它會是正確的工具。使用SSIS加載XML
該項目涉及到一個會員卡獎勵系統。計劃中的合作伙伴每個月都會發送一個或多個XML文件,詳細說明上個月的合格交易。每個XML文件最多可以包含10,000條記錄。 XML的格式非常簡單,4個「標題」元素,然後是包含記錄元素的重複序列。關鍵記錄元素是card_number,partner_id和points_awarded。
該進程當前正在生產中運行,但它是作爲一個c#應用程序開發的,它爲每個記錄單獨運行插入。這是非常緩慢的,超過8個小時處理10,000個記錄文件。通過使用SSIS,我希望能夠提高性能和可維護性。
我需要做的:
- 收集文件
- 驗證對XSD的記錄
- 業務規則驗證。對於每個記錄,我需要確保提供了有效的partner_id和card_number。爲此,我需要對合作夥伴和卡片表執行查找。應將任何「不良」記錄剝離並寫入響應XML文件。這與請求XML格式相同,只是增加了一個error_code元素。 「好」記錄需要導入到一個表中。
我有點1和2工作正常。我還創建了一個XSLT來將XML轉換爲準備插入的平面格式。對於第3點,我開始在控制流程表面中使用ForEach循環容器控件,循環每個XML節點和SQL查找任務。但是,這需要每次查找時調用數據庫,並調用文件系統來寫出XML文件以查找「壞」和「好」記錄。
我相信通過在數據流表面上使用查找控件可以獲得更好的性能。不幸的是,我沒有使用數據流表面的經驗。
有沒有人有解決問題的最佳方法的建議?我在網上搜索了一些SSIS軟件包的例子,這些軟件包與我所需要的類似,但沒有發現 - 有沒有在那裏?
謝謝
Rob。