用C#讀取Azure Data Explorer查詢後資料

Edward Kuo
Mar 14 · 5 min read

前一篇寫到[使用Azure Data Explorer探索資料]可以用Azure Data Explorer抓取Blob資料或是DataBase資料,算是可以異質資料庫整合的好服務。因此,想說如果這真的可以作為一個資料平台,那樣是否就可以透過Azure Data Explorer當作資料中台,對於儲存在雲端的各項資料都可以進行獲取呢?前一篇已經實作Azure Data Explorer抓取Blob,而除了在Web UI我們可以撰寫Kusto語法抓取與分析資料外,更重要我們也希望可以透過Application可以呼叫Azure Data Explorer後取的資料作為其他分析用途。

因此,就需要來使用C#透過Azure Data Explorer抓取Blob資料後並回傳分析結果

必須進行應用程式註冊動作

註冊一個新的應用程式

新增一個用戶端密碼

建立好密碼後,先記住此ID和值,後續會用到

然後,就到Azure Data Explorer的權限部分,加入你剛剛建立的應用程式名稱,以我剛剛案例,就是輸入ADXTEST

在這裡基本只是要查詢資料的話,就只需要給AllDatabaseViewer就好

以上到這裡的基本設置都完成,接下來就需要把一些資訊放入到程式中

建立讀取資料的Application

而使用Application 呼叫Azure Data Explorer中最重要是需要參數,畢竟,目前Azure Data Explorer並沒有類似SAS Token一樣可以去呼叫。所以,還是用到上面做的應用程式註冊方式才有辦法,所以,這邊需要用到幾個Key值

  • Azure Data Explorer URI是Azure Data Explorer服務的網址
  • ApplicationID是剛剛做應用程式註冊的應用程式ID
  • ApplicationSecret是該應用程式的憑證值
  • authID是Azure租用戶的識別碼

有了這幾組資訊後,然後在NuGet下載Microsoft.Azure.Kusto.Data 就可以,如果你有要寫資料回去就還需要下載Microsoft.Azure.Kusto.Ingest 不過這次的案例,我主要只是需要將資料讀取出來作為後續運用,因此,就不需要使用到Microsoft.Azure.Kusto.Ingest

開始前,必須先設定好前面提到的四個參數,才有辦法與Azure Data Explorer進行身分驗證

當有了驗證所必須使用的資料後,就可以透過KustoConnectionStringBuilderCreateCslQueryProvider與Azure Data Explorer取得連線。然後,在撰寫我們需要查詢的Kusto語法查詢資料就可以

裡面Querystring 就是Kusto的查詢語法。因為,我們希望查詢後結果強行別,所以使用ExecuteQuery<T> 將查詢資料回傳並放入AAA類別中。如果,是要回傳Json給前端Web的話,只要在做一個轉型就可以

var jsonstring = JsonConvert.SerializeObject(reader);

這樣就可以藉由Azure Data Explorer的運算力和資料分析能力將處理好的資料回傳過來,作為Application的應用或是客製化的應用

參考資料

EK.Technology Learn

Design,Thinking,Coding & have fun every thing

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store