我已經獲得了構建應用程序原型的任務。我沒有任何代碼然而,正如我已經拿出瞭解決方案概念似乎在最好的臭豆腐......在WPF應用程序中加載大量Azure blob數據
問題:
解決由該做的東西不同天青項目存儲在Azure SQL db-s中的大量數據。幾乎所有發生的操作都會在blob存儲中創建一個gzipped日誌文件。所以這是每個日誌條目一個.gz文件。
我們還應該有一個小桌面(WPF)應用程序,應該可以讀取,篩選和排序這些日誌文件。
我完全沒有影響記錄如何完成,所以這是無法改變的東西來解決這個問題。
,我已經想出了(概念)可能的解決方案:
1:
- 連接到Blob存儲
- 打開容器
- 讀/下載blob(帶應用過濾器)
- 解壓縮.gz文件
- 讀取和顯示
這樣做的問題在於,根據過濾器上,這可能意味着一大堆的數據下載的(這是慢),並處理(這也不會是很活潑的)。我真的不能看到這是一個可用的應用程序。
2:
- 創建將運行一個WCF或REST服務
- 服務將採取過濾PARAMS和其他的東西,並與數據返回一個XML/JSON文件Web角色,處理將在雲上完成
使用這種方法,如果存在很多這些文件,我是否會遇到解壓縮這些文件的問題(它是否會佔用存儲/計算實例上的額外空間,其中t他的服務正在運行)。
編輯:我的意思是過濾器是限制日期和嚴重性(信息,警告,錯誤)的結果。 .gz文件保存在一個很容易的結構中,我不會通過查看文件本身進行過濾。
3:
- 一些其他的優雅和簡單的解決方案,我不知道
我還需要使應用程序實時更新顯示的日誌的一些方法時間,我想這需要重複請求blob存儲/服務。
這不是那些「給我代碼」問題之一。我正在尋找有關最佳實踐的建議,或尋找類似問題的類似解決方案。我也知道這可能是其中一個「沒有人正確回答」的問題,因爲人們對問題的解決方法不同,但我有一些時間來構建原型,所以我會嘗試不同的東西,並且我會選擇正確的回答,這將是一個展示瞭解決方案的方法,或者是讓我朝着正確方向發展的解決方案,即使在我實際構建和測試之前需要一些時間。
我也不清楚。 「每個日誌條目一個.gz文件」有一個主日誌?如果您打算通過不查看這些.gz文件進行過濾,那麼您如何過濾? – Paparazzi
應用程序將調用類似Logger.Log(嚴重性,「消息」)。對於這些調用中的每一個,都會創建一個文件名爲「severity-date.gz」的新文件(名稱中包含更多數據,但在這種情況下不起作用)。 – Pinetree
對我仍然不清楚。你是說你單獨過濾.gz文件名嗎?所以你不能控制Logger應用程序?您是否可以控制對Logger.Log的調用? – Paparazzi