2017-07-13 29 views
1

我有一個SAP數據庫的前提下,我想每天推動一些這些數據(從SAP數據庫一些表)到Azure。數據將使用合併策略進行上傳(如果檢測到更改,則更新,如果缺少記錄則刪除,否則請插入)。我想做到這一點使用以下設置:是否可以使用帶SSIS的ETL將數據上傳到Azure數據倉庫?

- Install on premise integration Services (SSIS). The client already has license for this. 
- Install SAP connector on premise. 
- Pull data from SAP into text files (on premise, into multiple CSV files) (create ETL's for this). 
- Push those files into a Blob Storage (via AzCopy), so I create a job or process somehow locally that will handle newly created files. 

- Load data into Data Warehouse using PolyBase (https://docs.microsoft.com/en-us/azure/sql-data-warehouse/sql-data-warehouse-get-started-load-with-polybase) using an UP-SERT strategy. 

這將是肯定的工作,但我不知道它是否可以直接上傳使用ETL(使用SSIS包),基本上跳過步驟數據:

  1. 將普通文件保存到本地磁盤上。
  2. 將它們推送到Azure Blob存儲。
  3. 使用虛擬表格在上傳的文件上加載來自文件的數據。

我關注的是在以下方面: - 性能 - 成本

你認爲什麼是最好的方式?

謝謝!

回答

4

可以使用SQL Server集成服務(SSIS),以通過Azure SQL DW Upload Task這是Azure Feature Pack for Integration Services的一部分,將數據加載到SQL Azure的數據倉庫。此任務從本地文件共享中獲取文件,並在後臺使用Polybase將其加載到倉庫表中。使用此方法,您不必將文件顯式推送到Blob存儲或使用AzCopy。這種設計看起來像:

SAP>平面文件> SQL DW上傳任務

您還可以使用數據流任務直接加載到數據倉庫表,但在歷史上表現得非常緩慢。我想這個設計的優點是你不必將文件解壓縮到平面文件。我最近沒有嘗試過,因爲推薦的方法是Polybase。這種設計看起來像:

SAP> SQL Azure的數據倉庫(使用數據流任務)

的另一種方法考慮的是Azure的數據工廠目前擁有SAP連接(某些產品)。您需要一個網關來幫助從本地複製到Azure。 ADF可能具有更大的可擴展性,但如果您之前沒有使用它,則會有一些學習曲線。

+0

非常感謝,我想我做出了我的決定:我將使用flow SAP => Flat files => SQL DW上傳任務 –

相關問題