Ssis

如何使用 SSIS 在不同列位置導入長字元串?

  • June 30, 2016

我們的提供商以以下格式儲存我們的調查數據

  1. 每個調查的列名

例子:

|v1         |v2|v3|t1
|CompanyName|v1|v2|v3|t1|    
  1. 每個人的數據

一個調查數據集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

引用自:https://dba.stackexchange.com/questions/142650