iT邦幫忙

2023 iThome 鐵人賽

DAY 8
1

前文有提到,Metabase 是為一般人而設計的軟體,也因此,在 Metabase 的術語,對資料所做的資料庫查詢 (database query) ,稱之為問題(question)。它不要求一般使用者要在頭腦裡構思資料庫運作原理,與之相對的,它只要求使用者要積極地去對 Metabase 提出他們的疑問。而即使已經簡化致此,對於一般人來說,對資料來提問,依然是很專業的事情,不是那麼容易可以上手。能普惠一般人的,是全自動化的分析,而這點, Metabase 也可以提供。

接下來,我們會利用 Metabase 預設提供的樣本資料庫 (Sample Database) 來說明使用 Metabase 的自動分析。要了解自動分析,首先我們要討論兩件事:一是「探索式資料分析」,這是自動分析的目的。其二則是「欄位定義」,這是 Metabase 的功能之一,有了這個功能之後,自動分析才能有效地運作。

探索式資料分析 (exploratory data analysis)

何謂探索式資料分析呢?它是指一套有系統的作法,可以讓我們對資料產生基本的認識,此處的認識包含了:

  1. 瞭解資料:含有哪些資訊、資料的結構
  2. 檢核資料:有沒有無離群值或異常值
  3. 資料的相關性:分析各變數之間的關聯性,以找出重要的變數。

利用 Metabase 來做探索式資料分析

x-rays.png

  1. 選 Browse Data
  2. 選 Sample Database // 選擇 Metabase 預設提供的樣本資料庫。
  3. 滑鼠移到任意的表之上,就可以看到閃電兩個符號。其中,閃電的文字說明是「X-ray this table」
  4. 點選『閃電符號』的話,就可以得到全自動的探索式資料分析。

同表關聯性

Metabase 的探索式資料分析的功能相當強大,一開始就會給出一個總概括:

  1. 資料表的總列數
  2. 如果資料表有某些行 (column) 是時間的型別,則資料列數與時間的關聯性。
  3. 如果資料表有某些行 (column) 是地理位置的型別,則資料與地理位置的關聯性。
  4. 資料表之中,任兩行 (column) 的關聯性。

下圖是 order 表自動產生的『每週交易數』。
orders_by_week.png

跨表關聯性

實務上,資料庫在儲存資料時,通常會把資料拆成不同的表 (table) 來儲存,換言之,如果沒有把表與表關聯起來 (join) 做成一張新表,重要的關聯性也會看不出來。而 Metabase 的探索式資料分析,會利用欄位定義的資訊來了解資料表之間的關聯關系,於是,就算是跨表才能看出的關聯性,全自動的探索式資料分析還是一樣會給出來。

下圖是 order 表自動產生的『美國每個州的交易數』。而 order 表裡並沒有地理資訊,是 account 表才有。
transactions.png

欄位定義 (Field Type)

如果是有一定資料工程經驗的讀者,看到剛才的例圖,應該會覺得有點驚訝:「咦,這些事怎麼可能做得到?因為樣本資料庫的原始資料所記錄的美國各州名稱資訊,也只是用字串 (Text) 來記錄而已。」

確實,如果只利用樣本資料庫所挾帶的資訊,是不可能足已畫出上述的地理資訊圖的。另一方面,如果有另一組資訊,可以巧妙地補足這些資料欄位的後設資訊 (meta information),上述的繪圖不就可以自動化了嗎?

Metabase 特有的欄位定義 (Field Type) 功能,就是可以巧妙地補足上述的資料欄位後設資訊。注意:這些欄位定義的資訊,它們只存在於 Metabase 裡,並不儲存在 Metabase 所連結的資料倉儲裡。

field_type.png

結論:自動分析的前提

對於一般人來說,使用 Metabase 最簡單上手的方式,就是應用閃電符號的自動化分析。而要讓自動化分析可以發揮地淋漓盡致,這需要 Metabase 的管理員在欄位定義事先投入相當的功夫。


其它資源

  1. 對 dbt 或 data 有興趣 👋?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加
  2. 歡迎訂閱 PruningSuccess 電子報,主要談論軟體開發、資料處理、資料分析等議題。

上一篇
View layer: Metabase - 簡介
下一篇
View layer: Metabase - 基本操作
系列文
當代資料工程與資料分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言