2017-03-18 19 views
1

配置好Azure SQL數據庫之後,我想用HTTP REST GET調用中的數據提供一些表。 我嘗試過Microsoft Flow(其HTTP請求操作完全失敗),我現在正在探索Azure數據工廠,但無濟於事。 我現在想到的唯一方法就是配置Azure虛擬機並安裝Postman與Newman。但是,我仍然需要爲Azure SQL數據庫創建一個Web服務接口。如何調用Web服務API並將數據路由到Azure SQL數據庫?

是否Microsoft不提供HTTP調用服務來連接到Azure SQL數據庫?

+0

要指定,我知道WebLinkedService,但該服務似乎不支持通過Raw,OAuth或任何基於令牌的身份驗證的身份驗證。我將能夠設置一個自定義身份驗證方法,但我需要訪問HTTP標頭。如何添加HTTP標頭?我想你無論如何都需要它們來獲取Content-Type等參數。 – MisterTuna

回答

1

幾個星期前有相同的情況,我最終使用Azure函數構建API調用管理。使用Azure SDK將結果上傳到例如BLOB存儲或Data Lake是沒有問題的。你可以添加你需要執行HTTP post操作的任何程序集。

從他們你可以很容易地將它與數據工廠拉到一個Azure SQL數據庫。

1

我建議你自己寫一個Azure數據工廠定製活動來實現這一點。我爲最近的一個項目做了這個。

將C#類庫添加到ADF解決方案中,並創建一個繼承自IDotNetActivity的類。然後在IDictionary方法中,使HTTP Web請求獲取數據。首先將下載的文件放置在blob存儲中,然後有下游活動將數據加載到SQL DB中。

public class GetLogEntries : IDotNetActivity 
{  
    public IDictionary<string, string> Execute(
     IEnumerable<LinkedService> linkedServices, 
     IEnumerable<Dataset> datasets, 
     Activity activity, 
     IActivityLogger logger) 
    { 

等等

HttpWebResponse myHttpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 

,其中容器和文件名要用作輸出等

這您可以使用ADF鏈接服務,對存儲帳戶進行身份驗證,並確定是我用於數據湖的一個例子。但是blob存儲幾乎完全相同。

 Dataset outputDataset = datasets.Single(dataset => dataset.Name == activity.Outputs.Single().Name); 

     AzureDataLakeStoreLinkedService outputLinkedService; 

     outputLinkedService = linkedServices.First(
      linkedService => 
      linkedService.Name == 
      outputDataset.Properties.LinkedServiceName).Properties.TypeProperties 
      as AzureDataLakeStoreLinkedService; 

不要打擾輸入的活動。

您還需要Azure批處理服務以處理已編譯類的計算。看看我的博客文章這樣做。

https://www.purplefrogsystems.com/paul/2016/11/creating-azure-data-factory-custom-activities/

希望這有助於。

相關問題