開發圖表最關鍵的點在於選擇準確的圖表類型展現準確的數據,而準確的數據每每依賴於一個強大的取數模型,所以設計一個好的取數模型不只能夠解決數據安全的問題,更能夠幫助每一個訪問者高效觸達本身想要的數據,開發者能夠經過使用Quick BI創建起多層次多粒度的取數模型。數據庫
在構建取數模型前,簡單介紹一下數據集的概念。Quick BI 目前已經支持爲20多種數據庫創建鏈接,創建鏈接後咱們會在系統內爲每一個鏈接生成一個邏輯實體稱之爲數據源。經過預覽數據源能夠查看對應數據庫下面的物理表信息,並可以基於這些物理表建立數據集, 每一個數據集都是基於物理表加工和建模後的標準OLAP模型。在Quick BI 中, 對用戶表數據的讀取和加工通常都是基於數據集模型的。安全
目前,Quick BI中的取數模型包括如圖1所示的兩層:微信
圖1 Quick BI中的取數模型ui
數據集過濾器,在Quick BI中數據集能夠被多個儀表板的多個圖表所引用,經過將過濾器設置在某個數據集上,空間內的數據開發人員能夠確保全部引用該數據集的圖表分析人員訪問到的數據都受到範圍限制。阿里雲
根據過濾器的做用範圍能夠劃分爲全局過濾器和行級權限過濾器。url
一、全局過濾器spa
顧名思義是會影響到全部引用該數據集的圖表和用戶,設置定後能夠經過刷新預覽功能來覈對過濾後的數據,經過圖2的方式能夠設置全局過濾器。設計
圖2 數據集全局過濾器blog
二、行級權限繼承
可讓數據開發人員根據圖表訪問者的帳號、標籤或所屬的用戶組來定製其能夠訪問的數據範圍,設置在用戶級的過濾器會以「or」的方式繼承其所屬用戶組的過濾器,經過圖3的方式在數據集列表上能夠設置行級權限過濾器。注意,使用這兩種方式設置在度量上的過濾器都是明細級的過濾器,未作任何聚合。
圖3 行集權限過濾器
圖表級過濾器,這類過濾器在設定時會指定做用的圖表範圍,只有選中的圖表顯示數據時纔會受到影響。在此基礎上,還能夠根據做用的方式分爲設定式和觸發式。
一、設定式過濾器
由儀表板開發者在編輯模式下設置,預覽模式下用戶沒法改變過濾器的設置,做用範圍內的圖表也會一直受到過濾器的限制,設定式過濾器包含了內部過濾器和全局參數。
1.1內部過濾器
只會做用於當前圖表,當被設置成度量過濾器時還能夠選擇聚合方式,聚合方式支持sum、 cnt、max、min、avg、cntd, 它的設定方式是在儀表板編輯模式下經過拖拽數據集字段來設定如圖4所示。
圖4 內置過濾器
1.2全局參數
須要生成參數名並設置做用範圍,其做用機制是經過拼接url參數來完成條件的注入的,拼接格式以下:
param=[{"paramKey":"moci","joinType":"and","conditionList":[{"operate":"=","value":"華北"}]}]
,用戶能夠直接修改url參數內容來達到數據控制,也能夠在郵件訂閱和圖表跳轉功能中快捷引用, 它的設定方式是在頂部菜單中選擇全局參數來設定如圖5所示。
圖5 內置過濾器
二、觸發式過濾器
可以在編輯模式設置初始值,在預覽模式下也能夠經過特定的操做來改變關聯圖表的顯示數據,查詢條件和聯動參數屬於觸發式過濾器。
2.1查詢條件功能很是強大,它支持讓報表開發者自由的選擇字段,選擇聚合方式,設置做用圖表,設置過濾初始值以及設置待選範圍,而預覽者能夠在開發者限定的範圍內自由切換過濾條件,其設定方式如圖6所示。
圖6 查詢條件
2.2聯動參數是創建在圖表之間的一種做用關係,在可配置聯動圖表上配置了聯動字段和做用圖表後,預覽者能夠經過點擊聯動圖表的某些區塊來達到爲被聯動圖表同步注入過濾條件的目的,其設定方式是先選擇要聯動的圖表,而後在高級區域進行配置,如圖7所示。
圖7 聯動參數
上述幾種過濾器應用的場景各不相同,他們是經過AND的方式相互疊加的,儀表板編輯模式下圖表菜單裏有一個強大的查看SQL功能,能夠看到當前取數模型生成的SQL語句,方便開發者對當前的取數模型進行調整。在真實的業務場景中的每每要組合他們中的一到多種才能創建起完成的取數模型,以一家銷售公司爲例,經過使用全局過濾器過濾掉無效數據,經過使用行級權限來控制每一個銷售團隊只能看到本身轄區的銷售結果彙總,經過使用全局參數來生成不一樣的連接給每一個預覽者看到關注產品的銷售彙總,經過查詢條件和過濾器來控制和切換不一樣客戶的銷售數據,經過聯動參數來方便預覽者直接關聯其餘圖表查看某個客戶的具體信息。
圖8 查詢條件
原文連接 更多技術乾貨 請關注阿里云云棲社區微信號 :yunqiinsight