如何使用常用的6種方式對資料進行轉換(二)
如何使用常用的6種方式對資料進行轉換(二)
實驗目標:
1、 使用T-SQL語句對資料進行轉換。
2、 使用備份和還原對資料進行轉換。
3、 使用分離和附加對資料進行轉換。
4、 使用複製對資料進行轉換。(重點講解)
5、 使用SSIS匯入和匯出嚮導對資料進行轉換。
6、 使用SSIS包設計器對資料進行轉換
實驗步驟:
注意:下面所有的操作都將對以下表格進行更改
4、 使用複製對資料進行轉換。
通過複製可以將資料的多個拷貝分發到公司中的各個伺服器中。通過複製為多臺伺服器提供相同的資料,這樣使用者就可以在不同伺服器中訪問同樣的資訊,對以一個擁有大量使用者的企業,複製可以分散使用者訪問伺服器的負載,從而為每個使用者提供更高質量的服務。
複製可以將資料和資料庫物件從一個資料庫複製和分發到另一個資料庫,然後在資料庫間進行同步,以維持一致性。使用複製,可以在區域網和廣域網、撥號連線、無線連線和Internet上將資料分發到不同位置以及分發給遠端或移動使用者。
釋出伺服器擁有原始資料的拷貝,通過訂閱,將資料送到分發伺服器,並且由分發伺服器傳遞給訂閱伺服器。
分發資料庫儲存複製狀態資料和有關釋出的資訊,並且在某些情況下為從釋出伺服器向訂閱伺服器移動的資料起著排隊的作用。在很多情況下,一個資料庫伺服器例項可以充當釋出伺服器和分發伺服器兩個角色。
訂閱伺服器擁有資料的拷貝,根據所選複製的型別,訂閱伺服器還可以將資料更改傳遞迴釋出伺服器或者將資料重新發布到其他訂閱伺服器。
實驗環境:
在某一個公司裡的mysql資料庫中,有很多應用與銷售資訊記錄表(mytable表)相關聯,作為這家公司的資料庫管理員,為了避免衝突,需要將mysql表複製到一個不同的SQL Server例項上,原例項中的表用於資料更新,副本則用於查詢分析,並且需要時保持同步更新。
實施步驟:
1、 首先安裝兩臺SQL,如果都在工作組環境下,就用混合模式進行驗證,如果都在域環境下,就用windows域使用者賬戶進行驗證。本實驗是在工作組環境下,為了簡便起見都用SQL Server中的SA使用者進行驗證,實際中,最好不要這樣去做。如何啟用SA賬戶這裡就不做過多介紹了。
首選連線到其中一臺釋出伺服器上,然後選擇“新建釋出”就可以了,注意:釋出伺服器必須要開啟SQL Server Agent服務。其次,伺服器例項必須為本機計算機名稱。
選擇其中一個需要釋出的資料庫mysql。
釋出型別:
快照複製—這是最容易進行設定的複製方式,快照複製只需要週期性地傳送資料。當同步發生時,快照複製傳送所有資料。不需要去監視資料的修改,但這樣也可能引起資料流量的增加,如:當沒有資料修改時也會傳送所有的資料。
事務性複製—與快照複製不同,只要資料發生改變。事務性複製就將它們傳送給訂閱伺服器。這樣可以減少資料複製的流量。事務性複製通常從釋出資料庫物件和資料的快照開始,建立初始快照。當發生複製時,事務日誌被髮送到訂閱伺服器上,用以保證事務性的一致性。預設情況下,事務性發布的訂閱伺服器被視為只讀,因為更改將不會傳播回釋出伺服器。
合併複製—合併複製允許既可以在釋出伺服器上修改資料,也可以在訂閱伺服器上修改資料,當同步發生時,釋出伺服器的修改和訂閱伺服器的修改被合併在一起。在合併複製中,同一資料可能由釋出伺服器和多個訂閱伺服器進行了更新。因此在合併更新時可能會產生衝突,合併複製提供了多種處理衝突的方法。與事務複製相同,合併複製通常也是從釋出資料庫物件和資料的快照開始,當複製發生時,之後的更改被合併在一起。
為了滿足實驗背景需求,採用“事務性發布”。
選擇需要釋出的表,本實驗選用mytable,注意,選擇的表中必須要有主鍵才可以。
可以通過下面的“新增”選單對需要表中的有效資訊進行篩選,本實驗就不篩選了。
指定連線釋出伺服器的賬戶,本實驗由於在工作組中,所以選用SQL Server內建賬戶。
給該釋出伺服器命一個名稱。
釋出建立成功之後,會在本地釋出子目錄裡顯示出釋出的資料庫。
通過本機連線到另一臺SQL Server資料庫例項上,通過本地訂閱,訂閱釋出的內容。也可以在另一他SQL Server資料庫上做。
選擇“釋出的伺服器”然後通過SA賬號連線到釋出伺服器上。訂閱自己需要的釋出內容(在實際環境中可能有多個釋出)。
在實際環境中釋出伺服器和分發伺服器一般放在同一個SQL server中,就選擇最上面那個就可以了。
新增訂閱伺服器到此列表中,並選擇需要訂閱的伺服器,然後選擇訂閱伺服器中的一個資料庫就可以了。
與分發伺服器的連線需用模擬程式賬號,這樣做不是很安全,如果是域環境就直接使用域使用者賬戶就可以了,與訂閱伺服器的連線,使用訂閱伺服器上的SQL 賬戶,這裡選用SA,實際中,決定不允許使用這個賬戶。
完成之後,可以在訂閱伺服器的mysql_dingyue資料庫中看到剛才訂閱的表。
為了測試方便,在釋出伺服器上修改資料庫mysql中的表mytable,將小諾同志的工資加1000,看訂閱伺服器是否發生變化。
使用SQL語句檢視訂閱伺服器資料庫mysql_dingyue的表mytable看小諾的工資是否發生變化。
如果測試不成功,可以通過“檢視同步狀態”進行堅持資料庫的狀態。
5、 使用SSIS匯入和匯出嚮導對資料進行轉換。
匯入和匯出嚮導提出了一種從源向目標複製資料的最簡便的方法,可以在多種常用資料格式之間轉換資料,還可以建立目標資料庫和插入表。
可以向下列源中複製資料或從其中複製資料:SQL Server、文字檔案、Access、Excel、其他OLE DB訪問介面。
這些資料來源即可用作源,又可用作目標。還可將ADO.NET訪問介面用作源。指定源和目標後,便可選擇要匯入或匯出的資料。可以根據源和目標型別,設定不同的嚮導選項。例如,如果在SQL Server資料庫之間複製資料,則指定要從中複製資料的表,或提供用來選擇資料的SQL 語句。
實驗內容:
1、將SQL Server資料匯出到Excel中
2、將Access資料匯入到SQL Server中
實驗步驟:
********將SQL Server資料匯出到Excel中************
例如:將資料庫mysel中的mytable中的Name和Salary>4000資料匯出到一個名為mytable_excel中
資料來源選擇SQL Native Client 伺服器名稱選擇本地伺服器,並且使用Windows身份驗證,也可以使用混合模式身份驗證,資料庫選擇mysql
目標資料選擇Microsoft Excel,並通過瀏覽指向需要匯出到的那個excel表格。
由於不是全部匯出,需要通過命令列對資料庫中的表進行賽選。
輸入語句select name,salary from myatable where salary >4000,意思就是將表mytable中name和salary>4000的資料匯出來。寫完語句之後,最好通過分析驗證一下。然後再執行一下看看是否是你想要的結果,如果不是再返回上一步繼續操作。
下面是匯出的資料,完全符合標準。
*******************將Access中資料匯入到SQL Server中***************************
例如:將Access資料庫mytable_access中的資料匯入到SQL Server資料庫mysql中的test表中。
下面是源資料
源資料選擇Microsoft Acces,並瀏覽到源資料檔案即可。
目標資料選擇SQL Native Client即可,資料庫選擇mysql
如果源資料和目標資料有差異,做一個列對映,在SQL Server中列名最好用英文字母表示。並先前在SQL Server資料庫mysql中建立一張與Access資料庫同名的表。匯入之後,資料就匯入到那張同名的表中。
6、 使用SSIS包設計器對資料進行轉換(推薦使用)
使用SSIS設計器可以將先前做的匯入和匯出以及其它操作做成一個包的形式存放,需要匯入或者匯出資料時,只需要將包執行一次就可以了,而且轉換速度是先前速度的7倍。
簡單瞭解一下包的概念:包是一個集合,其中可包括連線、控制流、資料流、事件處理程式、變數和配置,可以使用SSIS工具將這些物件組合到包中。包是最重要的Integration services物件。
*******************將SQL Server資料匯出到Excel中******************************
例如:將資料庫mysql中的資料庫mytable匯出到一個名為newtest.xls中
開啟開發工具SQL Server Business Interlligence Development Studio.lnk。,然後新建一個專案。
在解決方案資源管理中選擇“資料來源”,新建一個資料來源,如果哦解決方案資源管理器未出現,單擊選單欄中的“檢視”—》“解決方案資源管理器”
為mysql資料來源建立連線管理器,在連線管理器視窗中,單擊滑鼠右鍵,選擇“從資料來源新建連線”。
建立資料流任務,在包設計視窗中單擊“控制流”標籤。在工具箱中選擇“資料流任務”並拖動到包設計器視窗。然後單擊“控制器”標籤,選擇“工具箱“中的””“資料流源”,然後選擇“OLE DB源”,並拖動到包設計器視窗。
在包設計視窗中選擇“OLE DB源”,單擊滑鼠右鍵,選擇“編輯”,在彈出的對話方塊中指定下列表
然後,選擇“工具箱”中的“資料流轉換”,選擇“派生列”並拖動到包設計視窗。在包設計視窗拖動“OLE DB源”的綠色連線到“派生列”。
然後在工具箱中選擇“資料庫目標裡的“平面檔案目標”並拖動到包設計視窗。在包設計視窗中拖動“派生列”的綠色連線到“平面檔案目標”然後編輯,如下圖所示:
在目標編輯器中選擇“對映”並將mytable表中的列對映到ACCESS表中。
設定完成之後,可以先測試一下,然後保持。
儲存的SSIS包在下面路徑裡,需要時,雙擊這個包就可以了
下面是SQL SERVER裡的mysql裡的表mytable轉換成Access表的結果。
*******將Access中資料匯入到SQL Server中*******
例如:將Access資料庫mytable_access中的資料匯入到SQL Server資料庫mysql中的xiaonuo表中。
做法與上面基本相同。這裡就不做過多演示了。
本文轉自凌激冰51CTO部落格,原文連結:http://blog.51cto.com/dreamfire/155126,如需轉載請自行聯絡原作者
相關文章
- 前端常用6種資料加密方式的使用(最詳解)前端加密
- WebSocket系列之JavaScript字串如何與二進位制資料間進行互相轉換WebJavaScript字串
- 使用ETL進行資料接入的方式
- mybatis使用association的resultMap方式進行對映少資料問題MyBatis
- ABAP和XML資料格式互相轉換的兩種方式XML
- GoldenGate中使用strcat和strext進行資料轉換Go
- FastJson 進行資料轉換的 實力ASTJSON
- Python教程:Pandas資料轉換編碼的10種方式Python
- WebSocket系列之JavaScript數字資料如何轉換為二進位制資料WebJavaScript
- IOS資料儲存常用的5種方式iOS
- VC常用資料型別使用轉換詳解 (轉)資料型別
- PHP中資料型別轉換的三種方式PHP資料型別
- 使用Ccscan進行資料字符集轉換驗證(上)
- 使用Ccscan進行資料字符集轉換驗證(下)
- IPv6轉換技術是什麼?淺談IPv6轉換的兩種技術方式
- 如何對資料目標進行分析
- VC常用資料型別使用轉換詳解資料型別
- 走進AngularJs(二) ng模板中常用指令的使用方式AngularJS
- Guice和JavaConfig:使用Annotation進行反轉控制的兩種方式GUIJava
- 使用世界變換的逆轉置矩陣對法線進行變換矩陣
- 什麼是二進位制?二進位制如何轉換?
- CGO實戰專案中常用的資料轉換和使用Go
- 【譯】如何用人類的方式進行Code Review(二)View
- iOS應用資料儲存的幾種常用方式iOS
- HTML轉換到PDF的三種方式HTML
- Python資料儲存方式有幾種?如何使用?Python
- Spring連線資料庫的幾種常用的方式Spring資料庫
- 利用Data Vault對資料倉儲進行建模(二)
- 如何對Tuxera NTFS磁碟進行不同格式轉換教程來啦UX
- 提供介面的幾種常用方式 (二,BeeGo)Go
- 程佩君:VC常用資料型別使用轉換詳解 (轉)資料型別
- 歸檔路徑更改後,如何對資料庫進行恢復(轉)資料庫
- ES6 換種思路處理資料
- 換種方式使用 Laravel 的 request 驗證Laravel
- 【中科三方】IPv6轉換技術是什麼?淺談IPv6轉換的兩種技術方式
- Python常用的資料儲存方式有哪些?五種!Python
- 資料視覺化常用的五種方式及案例分析視覺化
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式