本文將介紹利用 SQL Server 匯入和匯出精靈手動移轉 Windows Azure SQL Database 至 SQL Server。
【情境描述】
上週六(2013/4/27)筆者有幸參加全球 Windows Azure 的重要盛事 - Global Windows Azure Bootcamp,這是一個由全球各大社群在同一天同時進行有關 Windows Azure 技術分享的盛會,台灣是 91 個活動據點之一,這次的活動由 MVP 小朱、Sky 及董大偉老師分別就 Cloud Service、Website Service 及 Mobile Service 進行精采的分享及實機操作,有關 GWAB 當天的活動可以參考小朱兄的 Global Windows Azure Bootcamp。
在活動當天中間休息時間,好朋友 Sky 熱情地將學員有關 Windows Azure SQL Database 的問題轉介給筆者,當天這位朋友的問題是,他想要把 SQL Database 上的資料同步回企業內部的 SQL Server,他現在的作法是將 SQL Database 上的資料庫匯出成 *.bacpac 封裝檔,然後再匯入 SQL Server,每次匯入前還先手動將 SQL Server 上的資料刪除後才匯入,聽起來過程有點繁瑣,而且他想要只匯入部分資料表的資料就好。針對這個問題,筆者當初提供的做法有兩種,一為透過 SQL Data Sync,或是利用 SQL Server 匯入和匯出精靈來達到這個目的,本文將先介紹比較簡單的作法,利用 SQL Server 匯入和匯出精靈手動移轉 Windows Azure SQL Database 上的資料至 SQL Server。
【實作步驟】
當您安裝好 SQL Server 後,在開始畫面中可以看到匯入和匯出資料的圖示(如下圖)。
點選該圖式開啟的就是 SQL Server 匯入和匯出精靈,請於歡迎畫面中點選【下一步】繼續。
請於【選擇資料來源】步驟中輸入 SQL Database 的伺服器名稱及驗證資訊,接著選擇您要匯出的資料庫名稱,然後按【下一步】。
在【選擇目的地】步驟中輸入您要匯入到哪一個伺服器、使用的驗證資訊及要匯入的資料庫名稱,接著按【下一步】。
接下來您有兩種選擇可以決定要匯入 SQL Database 上那些資料表或是資料到 SQL Server,假設您有多個資料表要匯入到 SQL Server,建議您使用預設值【從一個或多個資料表或檢視複製資料】,接著按【下一步】。
您可以在【選取來源資料表和檢視】步驟中勾選您要匯入的資料表或檢視,若您有需要再匯入前先刪除資料表或刪除資料,甚至修改匯入之後的資料行名稱,可以點選【編輯對應】。
若您希望在匯入資料時將 SQL Database 中的資料附加在 SQL Server 現有的資料表中,可以在【資料行對應】視窗中選擇【將資料列附加至目的地資料表】,接著按【確定】。
設定好資料行對應關係後,匯入和匯出精靈會幫您產稱基本的 SSIS 封裝,您可以決定要立即執行或將封裝儲存起來,之後可以利用 SQL Server Agent 定期執行封裝以自動化移轉 SQL Database 到 SQL Server 的作業,筆者示範立即執行,直接將資料匯入至 SQL Server。
最後一個步驟主要在確定您的設定資訊是否正確,若沒問題請按完成來開始匯入 SQL Database 到 SQL Server。
若您在匯入資料時想要進行商業邏輯的判斷,那麼可以在【指定資料表複製或查詢】步驟中選擇【寫入查詢來指定要傳送的資料】。
以下示範匯入 Region 資料表 RegionID 大於 4 的資料。
接著一樣來到【選取來源資料表和檢視】步驟,此時在您就只會看到您在上一步驟所建立的查詢,目的地您可以依照需求指定要匯入新的資料表或是現有資料表,在此筆者示範的是匯入到現有的 Region 資料表。
直接按完成後於【儲存並執行封裝】步驟在按完成即可看到資料被順利成功。
【參考資料】