《Windows Azure Platform 系列文章目錄》
之前在別的項目中遇到了類似的問題,SQL Server虛擬機中的訂單數據,每天產生的數據約千萬級別,數據庫已經達到了5TB級別。之前需要人工對於SQL Server Table進行歸檔,費時費力。
我們可以利用Azure Data Factory,把SQL Server虛擬機的表,導入到Azure Storage中。
主要概念:
(1)ADF是雲端的ETL工具
(2)Apache Parquet,列存儲,高壓縮比,數據保存在Azure Storage中
(3)Parquet Viewer,Windows下查看Parquet數據的工具:https://github.com/mukunku/ParquetViewer
主要步驟:
1.准備Azure虛擬機,安裝SQL Server 2016,把數據插入到SQL Server表中,我們這里的sample data有411萬行
2.設置虛擬機的1433端口號,設置Source Service Tag為AzureCloud。允許Azure Cloud服務訪問。
3.創建Azure Data Factory。步驟略。
3.設置ADF的源數據,如下圖:
4.選擇類型為SQL Server
5.設置鏈接到SQL VM的鏈接字符串信息。如下圖:
6.選擇SQL Server Table表,或者執行T-SQL語句
7.然后我們設置目標數據
8.創建1個Azure Storage。再創建blob container,步驟略。
9.設置目標數據類型,為Azure Blob Storage
10.選擇數據格式,為Parquet。如下圖:
11.選擇到Azure Storage Account的Container Name,並設置新創建的Parquet文件名為ADF執行成功的時間。
@formatDateTime(addhours(utcnow(),8),'yyyy-MM-ddTHH:mm:ss')
請注意:ADF執行的時間為UTC時區,我們需要把UTC時區轉化為UTC+8北京時區
12.配置完畢后,我們可以通過debug進行調試
13.執行完畢后,我們可以在Azure Storage中,查看到執行成功后的Parquet文件,文件夾以yyyy-MM-ddTHH:mm:ss格式進行命名
14.如果調試成功,我們可以設置觸發器,設置每天執行。
15.設置每天執行一次
16.最后,我們可以點擊上圖的Publish All,把這個ADF發布
最后執行結果:
1.411萬行數據,總計花費56分鍾,數據可以復制到Azure Storage
2.Parquet格式的文件,總大小為4.25 GB
3.SQL Server虛擬機磁盤在ADF執行過程中,Disk Read 1分鍾內峰值2GB。Network Out峰值為2GB
4.執行完畢后,可以通過ParquetViewer,查看存儲在Azure Storage的文件。