Ssis
如何使用 SSIS 在不同列位置導入長字元串?
我們的提供商以以下格式儲存我們的調查數據
- 每個調查的列名
例子:
|v1 |v2|v3|t1 |CompanyName|v1|v2|v3|t1|
- 每個人的數據
一個調查數據集1
|1 |2|1|I work in the metal industry
一個調查數據集2
|MyCompany|4|2|4|I work as a programmer
對於每個調查,我都會獲得一個標識符來使用其餘的 api 並以 json 格式獲取數據。這就是我知道哪些數據屬於哪些列資訊的方式。
RestRequest("/datasources/{identifier}/columns", Method.GET) RestRequest("/datasources/{identifier}/data", Method.GET)
我使用它
SSIS
,我的問題是最多有 400 列,並且有這樣的列t1
可以在任何位置並最多容納 5000 個字元串(t1
是一個懸而未決的問題)。現在SSIS
,我可以將每列定義為長度為 5000 的字元串,並將臨時表中的所有列設置為,varchar(max)
但這會對性能產生巨大影響。這就是為什麼我想問是否有另一種方法來處理這個問題。
我不會認為它會對性能產生巨大影響。處理這就是 Varchar(Max) 的用途,而且不太可能產生任何影響。
然而,關於您關於替代品的具體問題,唯一的問題是使用稀疏列集。這允許您將許多潛在但通常為空的列打包到一個實際的 XML 列中。然後它們只有在實際使用時才會儲存在內部。可以使用它們的列名直接選擇它們,但如果您選擇 *,那麼您只會獲得原始 XML 列。
微軟文件在這裡:https ://msdn.microsoft.com/en-AU/library/cc280521.aspx