關於 Metadata
由於 CannerFlow 的『虛擬資料庫』的資料來源為動態的資料來源,所以系統必須很精確地了解到目前所有下面的不論是資料庫或者各種資料來源的變化。並且更新到 Metadata 的資料庫中,來達到『虛擬資料庫』的 Metadata 管理。
自動偵測 Schema Metadata
因此 CannerFlow 預設在每 30 分鐘會偵測 Metadata 是否有變更。若有變更,則所有 管理員 皆可在系統上看見通知、查閱變更內容以及修復變更。目前有以下兩種的情況。
手動偵測 Schema Metadata
可以到 CannerFlow ,『Data Source』區塊找到上面有『Scan Data Sources』按一下他就會馬上開始執行更新 Schema 的 Metadata。
無發生 Metadata 衝突事件
- 新增資料表
- 新增欄位
- 欄位變更(該欄位尚未使用)
若在真實的資料來源中新增資料表或新增欄位,也或是變更某欄位型別(且該欄位在 CannerFlow 內也還未使用)的狀況下,系統將會偵測到變更,但由於未達到衝突標準條件,因此系統的 Metadata Manager 會直接自動更新 Metadata 至最新的狀態,且不會發送衝突變更通知。
發生 Metadata 衝突事件
若發生 Metadata 衝突事件,系統會通知所有管理員,有些衝突狀況會需要管理員在系統頁面上手動的按 Resolve 按鈕,確定變更後再更新到 Metadata 的管理中心中。
衝突事件的條件:
若已新增至『工作區』的 Dataset 和其欄位與資料庫的 Schema 互相抵觸的時候,系統會判斷是否為衝突事件。
有以下幾種情境:
- 原始的資料源刪掉資料表(Table)
- 原始的資料源刪掉欄位(Column)
- 原始的資料源改變了欄位的型別(Column Type)
- 原始的資料源改變了欄位名稱(Column Name)或者是資料表名稱(Table Name):在系統中會判斷為刪除了一個資料表(或欄位),同時新增了另一個資料表(或欄位)
而發生衝突時,需要管理員到工作區的 Schema 變更偵測畫面中按『Resolve』按鈕,系統才會把更動後的資訊更新到 Metadata 的資料庫中。 非管理者只能查閱,沒有解決變更的操作權限。