Azure 數據總管提供無與倫比的效能,可用來擷取和查詢遙測、記錄、事件、追蹤和時間序列數據。 它具備經過最佳化的儲存格式與索引,並利用進階資料統計來進行高效率的查詢規劃與即時編譯的查詢執行。
記憶體與計算
Azure 數據總管會分隔記憶體和計算資源。 持續性資料儲存在 Azure Blob 儲存體 中,而運算資源則可能儲存暫存資料,或充當持續性儲存體的快取。
此區隔提供下列優點:
資料存放區
Azure Data Explorer 會將所有擷取的資料分割成 延伸 或 資料分片,也就是目標資料表的水平分割區塊。 範圍可以像單一記錄一樣小。 當數據累積在數據表中時,Azure 數據總管會自動合併範圍,直到它們成長為包含數百萬筆記錄為止。 每個範圍都會獨立於其他範圍進行編碼和編製索引。 這項功能有助於實現資料擷取吞吐量的線性擴展。
延伸區塊會平均分散於各個叢集節點上,並快取於本機 SSD 和記憶體中。 這種分散方式可提升準備及執行高度分散且平行查詢的能力。
如需數據記憶體的詳細資訊,請參閱 範圍概觀。
附註
Azure 數據總管也會保留重要的元數據,例如數據表架構和原則物件。 如需原則清單,請參閱 原則概觀。
資料快取
Azure Data Explorer 採用多層級資料快取系統,盡可能將最相關的資料保持在 CPU 附近。 此快取系統依賴範圍的不可變性,完全以 壓縮資料運作。 為了提升查詢效能,資料即使在 RAM 中也會保持壓縮狀態,只有在查詢需要時才會解壓。
如需快取的詳細資訊,請參閱 快取原則。
文字索引
Azure 資料總管的設計目的是在擷取資料時,為自由文字(string)和類似 JSON 的(dynamic)資料行有效率地建立索引。 索引會維持數據粒度層級,以根據索引評估查詢的部分,而不需要掃描數據。
在背景中持續透過合併最佳化區段,可改善壓縮與建立索引的效果,確保高效率的儲存與低查詢延遲。 當 extents 達到一定大小後,僅會合併索引,以提升查詢效能,同時不損及效率。
如需範圍和索引合併的詳細資訊,請參閱 合併原則。
列式儲存
Azure 資料總管提供一種稱為 資料列存放區 的中繼儲存體解決方案。 數據列存放區允許有效率地取用少量數據,並確保此數據可立即可供查詢。 當您 在叢集上啟用串流擷取時,數據一開始會內嵌至數據列存放區,然後移至數據行存放區範圍。
如需詳細資訊,請參閱 批處理與串流擷取。
欄壓縮
Azure 數據總管會維護處於壓縮狀態的數據,減少儲存和處理數據所需的記憶體數量。 此行為可加快查詢效能,並更有效率地使用系統資源。
Azure 資料總管會避免使用垂直壓縮,也就是透過排序資料來提升壓縮率,因為在自由文本或半結構化資料的情境下,這麼做會產生很高的 CPU 成本。 相反地,您可以指定具有主要查詢模式之案例的慣用數據排序順序。 這種取捨優先考量讓查詢能快速取得資料。
如需指定數據排序順序的詳細資訊,請參閱 數據列順序原則。
分散式數據查詢
Azure 數據總管使用分散式數據查詢技術,適用於大型非結構化數據集上的快速臨機操作分析。 這項技術的主要功能包括:
- 查詢產生的暫存資料會儲存在彙整的 RAM 中。
- 相關區段會在查詢計畫中標記,藉此提供快照隔離。
- 系統會優先支援快速且有效率的查詢,並採用較短的預設逾時時間。
- 原生支援 跨叢集查詢 ,以減少叢集間資料交換。
- 查詢會即時編譯成高效的機器碼,使用各層級的資料統計資料,並針對欄位編碼的細節量身打造。
附註
Azure 資料總管專為搭配專為 Azure 資料總管打造的 Kusto 查詢語言 (KQL)而設計。 此外, 也支援 T-SQL 。