跳至主要内容
版本:v1

掌握 View & Materialized View 的使用時機

View & Materialized View 概念

在 Canner Enterprise 中 MIS 人員可以去開啟工作區 (Workspace) 去做數據聚合產生 View 或是 Materialized View,View 的用法通常會像是資料清理,例如把原始的數據比較亂的數據經過 View 去數據清理, Materialized view 的話就是把數據做 Snapshot 轉換成 Application ready 的數據集讓 Data scientist 可以做 AI 應用、BI user 可以更新到 BI 報表上、也可以直接轉換成各種 Data applications。

View

在 Canner Enterprise 的 View,您也可以想成像是我們在操作 Database 時的 View。我能夠直接把不同的資料庫的執行 SQL 轉成一個 SQL View,然後再用 View 去與其他 Table 去做 Join 等等操作。

查看更多 View 的操作

Materialized View

e 若您有使用 PostgreSQL, Oracle 等關聯式資料庫的經驗,或多或少會聽過 Materialized View,簡單來說,Materialized View 會把 SQL Query 的結果實體化,最常見的用途為提高查詢的效能。在 Canner Enterprise 的 Materialized View,您也可以想成像是我們在操作 Database 時的 Materialized View,也就是我們在一般操作資料庫時,您希望有 "預先運算" 的結果儲存成一個新的 Table 時,您可以創立一個新的 Materialized View。

在 Canner Enterprise 中,Materialized View 在 Storage 中會佔有獨立空間,我們可以將一些費時,複雜的查詢結果用 Materialized View 建立快照的話,可以透過查詢該 Materialized View 節省每次回到資料來源取的資料的時間成本,例如我們透過 Oracle, PostgreSQL Join 幾張表得到一份業務資料,這樣的查詢若使用頻率較高,但不需要非常即時,一天更新一次即可,與其每次使用都到 Oracle 及 PostgreSQL 取得資料,不如設定一個 Scheduled Materialized View,一天執行一次並把資料實體化,這樣不管後續查詢或是 BI 軟體需要,都可以使用這份。

Materialized View 的使用方法:

  1. 預先運算結果,讓終端使用者可以快速地取得資料在他們的應用中
  2. 可以降低每次都要重新運算的 Effort,使用 Materialized View 預先算好常用的報表後續使用者可以直接使用,不需重複運算。
  3. 自動化更新,在 Canner Enterprise 中您可以排程固定時間更新 Materialized View 產生後續使用報表,未來不需要人力的建置產生報表。
Partitions

目前限制最多只能分 100 個 Partitions

查看更多 Materialized View 的操作

Canner Enterprise 資料流

當使用者在 SQL explorer 下很複雜的 Query 時,這個 Query 會像下圖執行:

  1. 從源頭我們只會取得需要運算的數據,在 SQL 通常就只是單純的 SELECT statement。
  2. 拉到運算層時我們會用分散式運算去把 Heavy computing 的東西拉到多台節點運算,像是 Join, max, min, etc...
  3. 運算完的結果呈現在 SQL explorer 的畫面上
  4. 使用者可以定期排程實體化(Materialized View),供未來應用單位可以快速的使用數據,不需每次都重新重頭運算。
  5. 實體化的數據可以到各種不同單位的應用,像是 Power BI, Tableau, 各種 SDK 等。

concept chart