SSDT建立不同語系的欄位翻譯

※SQL Server Data Tools

一、建立Cube

  1. 到E3下載bak,開啟SQL Server,還原資料庫
  2. 開啟SQL Server Data Tools 2015,新增→專案→Analysis Services多維度和資料採礦專案
  3. 新增資料來源:

右邊「方案總管」→資料來源→右鍵新增資料來源→下一步→New…→伺服器名稱:.、資料庫名稱:A12345→OK→下一步→勾「繼承」→下一步→完成

  1. 新增資料來源檢視:

右邊「方案總管」→資料來源檢視→右鍵新增資料來源檢視→下一步→選剛剛建立的資料來源(A12345)→下一步→下一步→選取全部資料表移到右邊「包含的物件」→下一步→完成

  1. 設定邏輯主索引鍵、建立關聯

針對[科目表.科目編號]、[學生表.座號]、[年度段考表.段考代號],右鍵→設定邏輯主索引鍵,並建立資料表關聯。

  1. 新增維度:

右邊「方案總管」→維度→右鍵新增維度→下一步→勾「使用現有資料表」→下一步→下一步→可用的屬性:全勾→下一步→完成。

  1. 建立階層:

「段考階層」:段考代號>年度>段考。

  1. 建立Cube

右邊「方案總管」→CUBE→右鍵CUBE→下一步→勾「使用現有資料表」→下一步→量值群組資料表:勾選「成績單」→下一步→下一步→下一步→下一步→完成。

左上「處理」。

  1. 「瀏覽器」頁籤,用EXCEL的樞紐分析表檢視此資料,
  • 篩選:
  • 欄:科目
  • 列:座號(不要做小計,以列表方式呈現)、姓名
  • 值:分數

※如果執行撿角,請回去SQL Server授予目前使用者(as)讀取A12345資料庫的權限(db_owner或db_datareader)。

(安全性→登入→選取目前使用者(as)→右鍵「屬性」→左邊「使用者對應」→右邊勾選資料庫和權限)

二、更新異動資料到CUBE

  1. 到SQL Server,在[A12345].[學生表.dbo],新增一個欄位,
  • 資料行名稱:性別
  • 資料類型:nchar(1)

,然後儲存。

  1. 編輯「學生表」資料表,填入每一位學生的性別(隨機填入即可)。
  2. 到SQL Server Data Tools,「資料來源檢視」→上面工具列「資料來源檢視」→重新整理。
  3. 切換到「學生維度.dim」視窗,把剛剛建立的欄位(性別)從右側資料來源檢視的學生表,拉到左側的屬性。
  4. 將CUBE再「處理」一次,到EXCEL「資料」頁籤→上面工具列「全部重新整理」,就可以看到剛剛學生表新增的欄位。

※檢視方塊

每一個都有各自很多的Fact表、量值,依據不同的資料做分類

一、建立檢視方塊

實作:利用檢視方塊選取不同的量值跟維度的檢視

  1. 切換到cube視窗→「檢視方塊」頁籤
  2. 對著A12345資料表按右鍵→新增檢視方塊,科目維度不勾選,「處理」CUBE。
  3. 開啟新的EXCEL,「資料」頁籤→取得外部資料:從其他來源→從Analsis Server→伺服器名稱:.→下一步→選取專案→選取剛剛建立的檢視方塊→完成。
  4. 檢視此資料的方式:樞紐分析表→確定。

※因為一般來說使用者可能不知道資料的關聯性,如果可以依據不同的檢視方塊,就可以依據不同類別資料做更細部分析。

二、建立翻譯─針對「維度階層名稱」

實作:利用翻譯來讓資料能轉譯成多國語言-先做Cube英譯

  1. 切換到cube視窗→「翻譯」頁籤
  2. 對著A12345資料表按右鍵→新增翻譯→選取新翻譯的語言:「英文(美國)」→OK→輸入對譯英文→「處理」CUBE。
  3. 開啟新的EXCEL,「資料」頁籤→取得外部資料:從其他來源→從Analsis Server→伺服器名稱:.→下一步→選取專案→選取CUBE(A12345.cube)→點擊「瀏覽」→複製資料夾路徑到檔案總管開啟(預設路徑通常是:C:\Users\user\Documents\我的資料來源)→儲存→完成。
  4. 檢視此資料的方式:樞紐分析表→確定。

這時候會發現:資料(量值階層)還是中文資料,因為資料讀取是依據系統語系才做變動,但可以用一個方法去強制修改資料讀取語系。

  1. 到剛剛的資料夾路徑下,對剛剛建立的.odc檔案(A12345.odc)按右鍵→edit with notepad++。
  2. 在<odc:ConnectionString>那行加入粗體字串:
    ;Initial Catalog=MultidimensionalProject1;Locale Identifier=1033</odc:ConnectionString>
    →儲存。

※Google Keyword:locale Identifier list,或參考Microsoft Locale ID Values

  1. 重新開啟剛剛的.odc檔案:

開啟新的EXCEL,「資料」頁籤→取得外部資料:現有連線→選剛剛設定的.odc,就會發現項目名稱變成剛剛設定的英文。

三、建立翻譯─針對「維度的欄位」─以「科目維度」為例

  1. 切換到科目維度.dim視窗→「翻譯」頁籤
  2. 對著科目維度按右鍵→新增翻譯→選取新翻譯的語言:「英文(美國)」→OK→依據下圖輸入對譯英文→「處理」CUBE。
  3. 到EXCEL「資料」頁籤→上面工具列「全部重新整理」,就可以看到剛剛輸入的英文欄位。

四、建立翻譯─針對資料表內容─以「科目表」為例

  1. 到SQL Server,在[A12345].[學生表.dbo],新增一個欄位:
  • 資料行名稱:SubjectName
  • 資料類型:nchar(10)

,然後儲存。

  1. 編輯「科目表」資料表,輸入每個科目的英文翻譯。
  2. 到SQL Server Data Tools,「資料來源檢視」→上面工具列「資料來源檢視」→重新整理。
  3. 切換到「科目維度.dim」視窗,把剛剛建立的欄位(SubjectName)從右側資料來源檢視的科目表,拉到左側的屬性。
  4. 將CUBE再「處理」一次,到EXCEL「資料」頁籤→上面工具列「全部重新整理」。

Leave a Reply