SQL Server服務器的數據轉換服務
在企業采用SQL Server數據庫之前,可能采用了Excle或者MY SQL等數據庫。他們的格式不同,存儲的位置也不同。但是,管理者在決策的時候,可能需要用到各方面的數據。此時,用戶就會遇到一個問題,如何把這些不同 格式、不同地理位置的數據集中起來進行分析呢?為了解決這個難題,SQL Server數據庫中提出了一種叫做DTS(數據轉換)的服務。通過這個工具,使得數據庫管理員可以將來自不同的源的數據(不同格式)提取、轉換甚至合并 到某個特定的目的(如SQL Server數據庫),以滿足統計分析的需要。
可以說,數據轉換服務所提供的一組工具能夠幫助數據庫管理員解決數據庫起初數據導入、數據合并分析等方面的問題。具體的來說,它有如下幾個妙用。
一、導入導出數據。
在部署信息化項目的時候,比較頭痛的一個問題就是基礎數據導入的問題。現在大部分企業在實施信息化項目,如ERP項目時,都一定有一定的信息化水平。 最簡單的來說,至少可能已經用Excle等辦公軟件來記錄一些信息,如產品信息或者客戶基本信息等。那么,在他們部署ERP系統的時候,若讓企業員工再一 條條的把信息輸入進去,就會增加許多額外的工作量。據筆者了解,很多企業都是在原有資料的基礎上,進行稍加修飾,如去掉一些不用的內容或者修改一些不準確 的信息后,直接導入到數據庫中。
但是,在導入的過程中,由于格式不兼容或者其他問題,往往會導致導入的失敗。而利用普通的工具,如SQL Server自帶的導入工具,無法記錄這些錯誤信息。利用這些工具在導入數據的時候,若遇到一條錯誤就會終止導入進程。如此數據庫管理員需要重新檢查數據 源(有時數據庫還不會提示哪條記錄出現了問題)。這么導入數據的效率是非常低下的。
而數據轉換服務能夠幫助我們解決這個問題。如數據轉換服務可以把文本格式的數據或者Excel文件中的數據導入到SQL Server數據庫中。最重要的是,如果這個原始的數據源中某條記錄有問題的話,不會中斷整個導入進程。在導入結束后,數據轉換服務會生成一份報告。在這 份報告中,會詳細記錄哪些記錄沒有成功導入以及可能遇到的問題。如果記錄少的話,數據庫管理員只需要手工錄入即可;而數據多的話,數據庫管理員也可以分批 導入數據,也把符合要求的記錄導入進去;然后再根據導入報告去修改那些不符合格式的記錄。修改完成以后再繼續導入剩余的數據。
很明顯,通過這個數據轉換工具,導入不同格式的記錄,會便利許多。與此同時,數據轉換服務還可以把SQL Server數據庫中的內容導出到一些特定的對象中,如Excel表格中。
所以,數據轉換服務的導入導出數據功能,在一些大量數據的導入導出以及不同格式的數據源之間進行對導,具有很大的用途。如數據轉換服務可以將大容量的文本文件格式的記錄高速導入到SQL Server數據庫中,等等。
二、利用數據轉換規范導入數據的格式。
數據轉換服務允許數據庫管理員在數據導入到SQLServer數據庫中,在對原始數據沒有進行更改的情況下,對需要導入的數據進行一些格式方面的調整或者 利用一些函數進行操作。如現在數據庫管理員需要從一份Excle表格中導入數據,但是在Excle表格中有一列商品編號,其是字符型數據。可是在SQL Server數據庫中,則要求為整數型數據。若沒有數據轉換工具幫忙的話,則數據庫管理員需要先在Excel表格中進行格式轉換,然后再把轉換后的數據導 入到SQL Server數據庫中。而如果利用數據轉換服務導入數據的話,則在導入的過程中,就可以利用函數進行數據類型的轉換,而不用修改原始的數據源。
再談一個自己遇到真實案例。一次筆者在給一個客戶導入基礎資料的時候,遇到了這一種情況。他們在使用SQL Server數據庫之前,采用的是ACCESS數據庫。在這個數據庫中有一個產品基本信息表,包含產品關鍵字、產品分類等等。當需要把這個數據庫中的內容 導入到SQL Server中時,要根據產分類的不同,給產品編號加入不同的前綴。如產品為成品的,則在產品編號前加入P;如果產品為包裝材料的,則在原有的產品編號前 加入B;若產品的類別為零件的,則加入M等等。
此時,筆者就沒有對原始的數據源進行更改。而是利用DTS服務在把數據導入到SQL Server數據庫之前,利用相關的函數,如字符型數據合并等函數,進行一些格式的調整。所以,數據轉換服務的一個好處,就是在不用更改原始數據源的情況 下,就可以規范需要導入的數據格式。這在異構數據源相互導入中,非常有用。
另外一個朋友也遇到過類似的問題。如他在給用戶導入庫存表的時候,也要進行一些數據轉換。當庫存數量大于等于0的時候,則導入的數值就是原來的庫存數 量。如果原始數據庫庫存數量小于0的時候,則導入的庫存數量就為0。筆者同事在導入的過程中,就簡單的編寫了一個ActiveX腳本來實現這個需求。在這 個腳本中,可以利用IF等函數來進行數據轉換,因為這些函數可以應用到專門的轉換或者包含條件邏輯。從而可以把記錄根據不同的條件邏輯轉換為合適的數據或 者格式。
所以,在導入數據過程中,如果要對一些數據進行格式或者其他方面的轉換,筆者就建議大家采用DTS來轉換數據,并導入到數據庫中。
三、導入過程中復制數據庫對象。
若直接利用ODBC等工具把其他SQLServer數據庫中的數據導入到SQLServer數據庫中,只能夠導入數據,而無法復制數據庫表上的對象,如約束、索引、主鍵等等。而且,對于視圖、存儲過程、默認值等基于基礎表的數據庫對象也無法導入進去。
在SQL Server數據庫中,數據庫管理員可以通過數據庫對象復制任務,將對象從數據庫的一個實例復制到另外一個。可以傳輸基本對象,也可以復制某些對象的定 義。如果選擇了某個對象,則復制對象任務將會自動復制任何相關聯的對象,如表湖或者視圖等的功能。前提是這些被復制的對象在選定的對象上有外鍵約束。
但是,利用DTS服務在導入數據的同時,還可以復制數據庫對象,可以傳輸諸如視圖、存儲過程、觸發器、規則、默認值以及用戶自定義的數據類型。這是 ODBC等數據導入工具所無法實現的功能。若所要復制的數據庫對象比較多,數據庫管理員還可以通過腳本來復制這些數據庫對象。
復制數據庫對象在實際工作中很有作用,可以保障數據導入的一致性與完整性。如現在數據庫管理員要從其他數據庫導入客戶信息表。而客戶信息表中需要引用聯系 人信息表與地址信息表兩個表。也就是說,客戶信息表中有兩個字段是這兩個表的外鍵。那么通過復制對象作業,只要復制了這張客戶信息表,則數據庫會自動復制 與其相關的表或者其他數據庫對象。而不用數據庫管理員再手工的去導入其他相關聯的數據。
四、執行一些自動化的操作。
在數據庫管理中,數據庫管理員很希望數據庫能夠自動收集信息并將信息發送到用戶指定的地點如郵件等等。在數據轉換任務中,就提供了一系列類似的工具,來簡
化數據庫管理員的工作。如在DTS組套種,有一個發送郵件的工具。
通過相關的設置,數據庫會在包成功或者失敗的時候自動發送一個電子郵件給數據庫管理員,以提醒他作業是成功還是失敗。并且會附上比較詳細的信息,以便于數
據庫管理員進行后續的操作。
數據轉換功能中,還包含了一個執行包任務,是的一個包運行另一個作為包步驟。這可以讓我們的工作更加的自動化。如在數據庫導入過程中,我們可以通過包運行
計劃,把需要導入的數據表一步步按順序寫入執行包計劃中。而讓數據庫在比較空閑的時候,自動按序導入數據。而數據庫管理員不用在旁邊指揮。
可見,數據轉換服務是功能很強的一項服務。在數據導入與轉換的過程中,筆者首推這個工具。特別是在數據量比較大的情況下,這個數據轉換服務確實能夠起到畫龍點睛的作用。
關鍵字:SQL Server、數據庫、轉換
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解