DataEase 設計理念淺析

語言: CN / TW / HK

導讀

本篇內容是筆者在做 開箱即用的 BI 工具 系列的過程中的一些個人總結。為了保證文章的整體結構,特單獨提煉出這一篇關於 DataEase 的解析。各位讀者請放心,本篇內容會很獨立,沒有其他上下文也不影響閱讀。

正文

DataEase 簡介

DataEase 是開源的資料視覺化分析工具,幫助使用者快速分析資料並洞察業務趨勢,從而實現業務的改進與優化。DataEase 支援豐富的資料來源連線,能夠通過拖拉拽方式快速製作圖表,並可以方便地與他人分享。

這是其 官網文件 給的定義,其實跟其他 BI 視覺化工具一樣,都是為了能夠通過拖拽、點選等視覺化操作生成圖表。同時,它們可以從各種資料庫或其他資料來源匯入資料進行消費。如下圖官網給的示例。

image.png

可以在 線上體驗地址 體驗。快速瞭解其操作可以觀看 快速入門DataEase入門教學視訊 的視訊。

設計分析

分析之前,我們要先提出關鍵問題,也就是分析什麼。 1. 各種資料來源的資料結構和型別都不太一樣,它是如何做到統一多種資料來源的? 2. 每種圖表需要配置的屬性也不同,屬性最終要繫結到資料欄位上的,它是如何用視覺化的方式做到這種繫結的? 其實這兩個問題適用於所有的 BI 視覺化工具,也是它們底層要解決的問題。下面我們來看下 DataEase 的解決思路,先上產品架構圖。

image.png

資料集

第一個重要的概念 —— 資料集,用它來解決資料來源統一的問題。資料集裡的資料型別只有:文字時間數值數值(小數)地理位置 這幾類。不管從什麼資料來源匯入的資料,都會被轉換為資料集。這裡拿比較特殊的 Excel 方式舉個例子,看其如何生成一個數據集。為方便理解概念,列一下與 MySQL 的對比: Excel | MySQL | 資料集 -|-|- 檔案 | 資料庫 | 資料集分組 Sheet | 表 | 資料集 列 | 欄位 | 欄位 行 | 記錄 | 記錄

這麼一列實際上就比較清楚了,如果看了 快速入門 的介紹視訊,可以知道,上傳 Excel 檔案並選擇 Sheet 後,就可以初步生成多個數據集了。那麼資料型別如何確定呢?

首先會根據 Excel 自帶的列資訊分析,匹配相應的資料型別。然後還提供了手動修改資料型別的功能。其他資料來源的接入也大同小異。通過提供自動分析 + 手動設定的功能,解決了各種資料來源資料型別與資料集資料型別的對映問題。

第 1 個問題解決完畢。

維度/指標

資料格式統一的問題通過資料集解決了,下面來看看檢視(圖表)的問題。

從產品架構圖可以看出,DataEase 支援 ECharts 和 AntV 兩種圖表庫,筆者毫不懷疑,如果還有更多圖表庫,DataEase 支援起來也不會太麻煩。那麼它們是如何做到的呢?我們看一下生成檢視的步驟:

image.png 從上圖可以看到,右側資料操作區分成了左右兩列。

  • 左側是維度指標列表。都是資料集裡的欄位,所以內容會根據選擇的資料集不同而變化;
  • 右側是圖表屬性欄位。會根據選擇圖表型別的不同而變化; 我們可以注意到,圖表屬性每一項後面都標明瞭維度指標,反應快的小夥伴應該已經明白了:DataEase 就是靠維度/指標的概念將資料集與圖表屬性關聯起來的。

試想一下,假設有另外一個圖表庫 xxCharts,只需要將圖表的各種屬性打上維度或指標的標籤,就可以直接接入 DataEase 的檢視體系,這就是抽象的魔力。

那麼維度和指標在資料集這邊是如何定義的呢?

首先,匯入資料時,DataEase 會根據欄位型別歸類,數值型別的為指標字元、時間型別的為維度。然後,在資料集的欄位管理頁面下,可以修改欄位的維度/指標型別。

仍然是自動分析 + 手動設定的功能設計,解決了資料集的問題。至於圖表庫,那就需要 DataEase 在程式碼層面配置了。

第 2 個問題解決完畢。

結論

DataEase 通過增加資料集這個概念或者說是抽象,解決了不同資料來源資料格式統一的問題。這讓檢視層只需要考慮對資料集格式的適配即可,遮蔽了資料來源層面的複雜度。

再通過增加維度/指標的概念,讓資料集欄位(資料集層)和圖表屬性(即檢視層)得以解耦。

這兩個抽象最終達成的效果就是:一頭不怕資料來源的擴充套件,一頭不怕檢視層的擴充套件,整個架構讓兩頭都穩了,這就是抽象和架構設計的魔力。

All problems in computer science can be solved by another level of indirection.——David Wheeler

電腦科學領域的任何問題都可以通過增加一個間接的中間層來解決。——大衛·惠勒 更多 DataEase 系統架構相關的資料可以檢視官方文件:系統架構