微軟開源高效能單通道記憶體串流分析引擎Trill,係由微軟研究員開發,基於時間資料(Temporal Data)和查詢模型,專門處理即時和離線資料,可應用於串流引擎、輕量級記憶體關聯引擎,以及漸進式查詢處理器。

Trill是2012年微軟研究院中的一個研究專案,使用的技術源自微軟以前的服務StreamInsight,供開發人員開發和部署複雜的事件處理應用程式,而這兩個系統都基於擴展查詢和使用時間元件來擴展關聯模型的資料模型。現在Trill以一個套件,就提供了所有這些功能。

微軟提到,Trill是第一個集合技術和演算法的串流引擎,以使用者可容忍的延遲,處理小批次的資料,另外,Trill同時也是第一個以行格式,組織這些批次資料的引擎,能使查詢執行更加有效率。對於開發者來說,使用Trill與使用任何.NET函式庫相同,可以直在.NET環境中開發,開發者可以將Trill嵌入至各種分散式處理基礎架構中,像是Orleans和微軟的SCOPE資料處理基礎架構的串流版本。

無論在即時還是離線資料集,Trill也都能發揮良好的功能實現最佳效能,微軟表示,開發者只需要一個工具就能進行所有分析,Trill語言的高度表達能力,允許使用者執行先進的時間導向分析,並從串流資料集中找尋複雜的模式。

在Trill釋出後,專案從微軟研究院轉移到了Azure資料產品團隊,成為微軟內部一些大型串流工作管線的關鍵元件。Trill已經被微軟大量部署於內部應用程式和外部的服務,參與規模覆蓋數千名開發人員。微軟提到,他們能夠在10個月內,讓Azure串流分析服務從第一行程式碼到公開預覽,就是在服務上使用Trill作為節點上的處理引擎。

Trill函式庫的組成,方便的和分散式處理框架與輸入輸出輸入配適器整合,微軟利用SQL編譯器,將SQL查詢編譯為Trill的表達方式,以解決時間語意的複雜性。未來Azure預計還會釋出Trill程式開發模型,供使用者利用其強大的表達能力。

除此之外,微軟也在自家搜尋引擎廣告Bing廣告中使用Trill。透過Trill,微軟能夠在數分鐘內,以接近即時的速度,處理數PB的大規模資料,微軟提到,要獲得這樣的成果,在傳統的方法中要花費超過24小時以上。

Trill現在已經成為Bing廣告串流處理系統的核心,其提供一致的資料模型和豐富的查詢語言,讓微軟能夠輕鬆的建構和執行複雜的業務場景,而且Trill高效能的設計,不只能處理每天數兆的事件,超大規模資料和數TB級的狀態都不是問題。微軟表示,現在開發者社群中沒有與Trill相同功能的工具。

微軟在GitHub中開源Trill,並邀請社群參與Trill的發展,微軟提到,Trill的可擴展性之一,便是允許用戶編寫自定義聚合,Trill的內部聚合實作與使用者自定義的框架相同,每一個聚合都使用相同底層的高效能基礎架構。即便Trill已經擁有各種聚合,但仍有許多可以增加的聚合,諸如金融等領域等待社群。


Advertisement

更多 iThome相關內容