什么是大數(shù)據(jù),拖拽鼠標(biāo)然后秒級計算超過 10000 億行數(shù)據(jù)算不算。
早在7月的微軟大會上就演示了這個特性(參考:從PowerBI定義現(xiàn)代BI未來 揭開微軟驚天戰(zhàn)略),9月就發(fā)布了預(yù)覽版,能讓所有用戶來體驗這項功能。我們在9月更新解讀中深度聊過這個話題,有伙伴建議是否可以錄制一個小視頻來解釋一下。立即就發(fā)現(xiàn)微軟的老師已經(jīng)在 18.09.12 發(fā)布了一個下視頻來說明此事。在這里,我們不妨一起再來從純用戶的角度來感受一下。

下面讓我們跟隨微軟的老師一起來了解一下。

我們最關(guān)注的問題就是:PowerBI到底可以處理多少數(shù)據(jù)?

老師開玩笑的拿出三張磁盤,這些磁盤加起來大概容量是1M,也就是100W左右字節(jié)。而PowerBI可以處理的數(shù)據(jù),按行計算,也要比這些多得多。
老師開始演示PowerBI可以處理的數(shù)據(jù)條目,如下:

請注意老師身后的顯示器,顯示了1.01T,含義是1.01T行數(shù)據(jù),也就是 10000億行。這個計算在1秒內(nèi)完成。

在當(dāng)前頁面進行數(shù)據(jù)拖拽以及切片,都可以瞬時反應(yīng)出計算結(jié)果。這說明在一個比較高的匯總級別來分析問題,面對多達(dá) 10000億行 的原始數(shù)據(jù),是可以快速做到秒級響應(yīng)的。
除非,我們非要看它的原子數(shù)據(jù),例如:

注意,用戶在矩陣點擊右鍵,鉆渠到明細(xì),這時PowerBI將在原始數(shù)據(jù)中查找符合篩選條件的結(jié)果,這個過程相對更加費時一些。

大概經(jīng)過近30秒的計算才從多達(dá)10000億的原始數(shù)據(jù)中計算出詳細(xì)的軌跡數(shù)據(jù)。
現(xiàn)在,讓我們一起來看看這里面涉及的原理。主要是 導(dǎo)入模式 和 DirectQuery模式 的結(jié)合使用。

它們的主要區(qū)別在于:
- 導(dǎo)入模式的性能更好
- DirectQuery模式可以處理更實時的數(shù)據(jù)
- DirectQuery模式可以處理更大規(guī)模的數(shù)據(jù)
因此,我們應(yīng)該將這兩種方式結(jié)合使用。
考慮下面的數(shù)據(jù)模型,它們既可以使用導(dǎo)入模式,也可以使用DirectQuery模式,如下:

在實際中,最好的方式是將這兩種方式結(jié)合使用,如下:

可以看出,這里將數(shù)據(jù)量相對有限的日期,員工,產(chǎn)品以及地理位置使用導(dǎo)入模式;而將零售,銷售及客戶數(shù)據(jù)使用DirectQuery模式。
最關(guān)鍵的步驟來了:

這里使用了一張額外的 聚合 表,實現(xiàn)預(yù)先計算的目的。這樣,一旦用戶從某些角度來查詢,會命中到這個預(yù)先計算的聚合表,直接返回答案,這個速度就會非常快。在實際操作中,這個聚合表通??梢允褂秒[藏狀態(tài),對用戶完全透明的。用戶只是知道自己拖拽了 維度 和 指標(biāo) 到報表上進行計算,也知道這些計算可能涉及到底層超過 10000億行 的數(shù)據(jù),但用戶并不知道他的查詢命中了聚合表而直接返回了計算結(jié)果。

如果用戶的查詢無法命中聚合表,才會真正使用DirectQuery模式向數(shù)據(jù)源發(fā)起查詢,這取決于數(shù)據(jù)源的響應(yīng)速度。在微軟的Azure提供的包括 Spark 以及 SQL Data Warehouse 等大型數(shù)據(jù)源都可以支持很大規(guī)模的數(shù)據(jù)查詢并提供很好的性能響應(yīng)保障。
OK。這就是 PowerBI 進行大規(guī)模數(shù)據(jù)操作的核心原理。

正如 PowerBI 的口號:前所未有的商業(yè)智能。
本文來自微軟官方頻道的視頻講解,大家可以在這里在線或下載觀看:
在 PowerBI 9 月更新的介紹文章中已經(jīng)完全介紹了其中的原理。參考:9月更新詳解。