玩轉Metabase

用NBA數據探索開源BI工具的新視野

陳威均

編著

目錄

Metabase 簡介與安裝

Metabase 初見

資料分析的前世今生

探索數據

可視化報表

Metabase 案例實作

Metabase 的進階設定

Metabase 與其他系統的整合

附錄A 常見問題解答

附錄B 其他資源和參考

第一章

Metabase 簡介與安裝

1.1 序言：BI 是什麼？

1.2 什麼是Metabase？

1.3 版本發佈歷史

1.4 系統架構

1.5 安裝與設定

1.6 企業導入Metabase BI 系統的步驟

第1章 Metabase 簡介與安裝

在過去的職業生涯中，我發現許多使用者常常只將注意力集中在資料的輸入及簡單的報表分析，對於商業智慧（BI）的實際用途卻知之甚少。這樣的工作流程雖能滿足基本需求，但總讓人感覺少了些什麼，直到我看到阿里的『一切業務數據化，一切數據業務化』這句話，才真正領悟到 BI 在現代企業中的關鍵作用。

BI 的核心在於透過資料驅動業務，讓決策更具前瞻性與精確性。資料不僅是業務的副產品，它應該成為推動業務成長和優化的重要資源。而本書的重點將放在 Metabase 這個簡單易用的可視化工具上，它能夠快速將資料轉換成有價值的洞見。雖然我們會重點介紹如何使用 Metabase 進行資料可視化，但我仍要強調，工具始終只是工具，要真正進入資料分析的大門，相關的知識學習是不可或缺的。希望本書能帶你邁向 BI 的世界，並激發你更深入挖掘資料背後的潛力。

Metabase 是一款開源的商業智能（BI）工具，專為企業用戶設計，幫助他們輕鬆進行資料分析和可視化。它最大的優點在於其使用門檻低，不需要專業的數據科學背景就能上手。使用者只需將 Metabase 與資料庫連接，即可通過簡單的圖形化界面生成報表和儀表板，分析公司內部數據。Metabase 支持多種資料來源，如 MySQL、PostgreSQL、MS-SQL、Oracle及Google BigQuery 等，並能夠自動產生問題或使用者可以自行設計查詢。

它另一大優勢是 Metabase 的即時可視化功能，讓使用者能夠在幾分鐘內從數據中得出結論。其內建的協作工具還能方便團隊共享見解。Metabase 的開源性意味著企業可根據自身需求進行定制，並且它提供自動化報告功能，讓決策過程更加高效。

1.1 序言：BI 是什麼？

BI（Business Intelligence，商業智慧）的資料分析起源，可以追溯到企業和組織開始使用資料，來支持決策制定的時代。BI 資料分析的發展歷程，大致可以分為幾下幾個階段

早期資料分析的萌芽

在工業革命時期，隨著企業規模的擴大和業務複雜性的增加，資料逐漸成為企業管理的重要資源。最早的資料分析手段多數依賴於紙質記錄和手工計算，管理者根據財務報表和統計資料做出經營決策。隨著計算機的發展，資料處理的自動化成為可能，企業開始使用簡單的電子表格來進行資料存儲和分析。

ERP 和資料庫的發展

20 世紀 60 年代至 70 年代，隨著企業資源規劃（ERP）系統和關聯式資料庫的出現，企業開始能夠更有效地收集和存儲大量的業務資料。這一時期的重點是如何高效地管理企業內部的數據資源。儘管資料儲存和管理技術有了顯著進步，但資料分析仍然相對有限，大多數企業依賴靜態報表來了解業務狀況。

OLAP 和資料倉儲技術的興起

20 世紀 80 年代，資料倉儲（Data Warehousing）技術開始流行，允許企業從不同資料源中提取、轉換和集中存儲資料。這些資料倉儲成為決策支持系統（DSS）的基礎。隨後，線上分析處理（OLAP）技術出現，為企業提供了多維度的資料視圖，讓管理者能夠更加靈活地探索資料，發現其中的模式和趨勢。

商業智慧的誕生

在 20 世紀 90 年代，商業智慧（BI）的概念開始逐漸成形，這是一個整合了資料倉儲、OLAP、資料挖掘、儀表板等多種技術的框架，旨在幫助企業在大量資料中找到有價值的見解。BI 工具能夠提供即時的業務洞察，使企業可以更快做出反應。

大數據和人工智慧的崛起

隨著 21 世紀初互聯網和科技的快速發展，資料量呈指數級增長，這帶來了 "大數據" 的時代。傳統的 BI 工具逐漸難以應對這樣的大規模數據分析需求，因此大數據技術和人工智慧（AI）逐漸融入了 BI 的領域，形成了資料挖掘、機器學習、自然語言處理等進階分析技術。這些技術可以自動發現資料中的模式，預測趨勢，並提供決策建議，進一步強化了 BI 的價值。

現代自助式 BI 工具

進入 2010 年代，BI 工具變得更加簡單易用，從以 IT 為中心的 BI 轉變為自助式 BI，允許業務使用者（而非技術專家）自行操作、生成報表和可視化分析工具。像 Tableau、Power BI、Metabase 這樣的工具讓企業可以更靈活、快速地從數據中獲取洞察，讓資料驅動決策的能力普及到每個人。

BI 資料分析的起源和發展是隨著技術進步和資料量增長而演變的過程，從早期的手工報表分析，到如今結合大數據和人工智慧的即時數據洞察。BI 工具如今在企業決策中扮演了關鍵角色，能夠幫助企業從大量資料中快速找出有價值的見解，進而提升競爭力。

Metabase 官網的範例

1.2 什麼是 Metabase？

介紹

Metabase 是一個開源的商業智慧 (Business Intelligence, BI) 工具，可以繪製圖表、Dashboard，旨在幫助用戶輕鬆分析和可視化資料，並生成報告。它特別適合對資料分析不熟悉的用戶，因為其界面友好、易於使用，無需具備編程或數據科學背景。

價格方案

Metabase 有分為四種方案：『開源』、『入門版』、『專業版』、『企業版』。

https://www.metabase.com/pricing/#compare

開源：要自行架設主機，並自行下載、安裝、維運，完全免費使用，適合有資訊部門的企業。

Starter(入門版)、Pro(專業版) 和 Enterprise(企業版)：都是雲端版本，免自行安裝主機，隨時開通後就可以使用，至於其優缺點，稍後會在 1.5 節中加以說明。

環境需求：要成功安裝和運行 Metabase，您需要滿足一些基本的環境需求。

硬體需求

伺服器：

至少 1 個 CPU 核心

至少 2 GB 的 RAM（建議 4 GB 或以上，以應對更高的用戶負載）

足夠的硬碟空間（根據數據量，通常 1 GB 以上）

操作系統：

Metabase 可以在各種操作系統上運行，包括：

Linux（Ubuntu、CentOS 等）

macOS

Windows（雖然在 Linux 上的運行更為穩定）

軟體需求

Java：

Metabase 是基於 Clojure 開發的，需要 Java 8 或更高版本的 JDK。

建議使用 OpenJDK 或 Oracle JDK。

資料庫：

Metabase 可以連接到多種資料庫，如：

MySQL

PostgreSQL

MongoDB

SQLite

Microsoft SQL Server

Google BigQuery

Web 伺服器：

Metabase 本身內建 Web 伺服器，不需要額外的 Web 伺服器。但如果要在生產環境中運行，建議使用 Nginx 或 Apache 作為反向代理伺服器來處理 SSL 證書和流量。

主要特點和功能

簡單易用：

Metabase 提供直觀的圖形用戶界面，用戶可以通過點擊和拖放的方式創建查詢，而不需要編寫 SQL 語句(熟悉 SQL 語句當然能更大的發揮 Metabase 的功效)。

即時數據可視化：

用戶可以快速生成圖表、儀表板和報告，實時查看數據趨勢和關鍵指標。

支持多種數據源：

Metabase 可以連接多種資料庫，包括 MySQL、PostgreSQL、MongoDB、SQLite 等，並支持多個數據源的整合。

儀表板和報告：

用戶可以創建自定義的儀表板，將不同的數據視覺化組合在一起，並分享給其他團隊成員。

社群和擴展性：

作為開源工具，Metabase 擁有活躍的社群，並且可以根據需求進行擴展和自定義。

使用場景

數據分析：幫助企業分析業務數據，從而做出更明智的決策。

報告生成：快速生成和分享業務報告，減少報告的手動生成時間。

業務監控：實時監控關鍵績效指標 (KPI)，追蹤業務表現。

1.3 版本發佈歷史

以下是 Metabase 的一些主要版本及其改版內容：

Metabase 0.1.0 (2015年6月)

首個版本，推出了基本的數據可視化功能。

Metabase 0.20.0 (2016年9月)

引入了儀表板功能，允許用戶將多個視覺化組合在一起。

Metabase 0.25.0 (2017年5月)

新增了自動數據更新功能，支持實時數據更新。

Metabase 0.29.0 (2017年10月)

強化了 SQL 編輯器，支持查詢提示和語法高亮。

Metabase 0.31.0 (2018年6月)

改進了儀表板的分享功能，增加了使用者權限管理。

Metabase 0.34.0 (2019年1月)

新增了進階的過濾器和查詢選項。

Metabase 0.40.0 (2020年6月)

引入了更強大的數據探索功能，增強了自動化和報告功能。

Metabase 0.42.0 (2021年9月)

改善了用戶界面和報告設計，支持多語言界面。

Metabase 0.45.0 (2022年11月)

新增了 API 支持，讓開發者可以更輕鬆地與 Metabase 進行整合。

Metabase 1.0.0 Enterprise (2023年5月)

發布了穩定版本，增強了性能和安全性，並提供了更多的數據連接選項。

這些改版不僅增強了 Metabase 的功能，還提高了用戶的使用體驗。隨著開源社群的發展，Metabase 持續改進，為用戶提供更好的數據分析工具。

本書的說明內容，如果沒有特別註明，都是以V0.50.20 版為標的。

PS：改版的歷程請以官網的說明為準，此處僅列出幾個較重大的更新。

https://github.com/metabase/metabase/releases

出版前有更新到 V0.51.3，新增加的內容，會在稍後的章節專門補充。

1.4 系統架構

Metabase 是一個開源的商業智慧 (BI) 工具，旨在簡化數據分析和報告生成的過程。以下是 Metabase 的系統架構說明的概覽。

客戶端（Frontend）：

Metabase 的用戶界面是基於 React.js 構建的，提供用戶友好的圖形介面，使用戶可以輕鬆地創建查詢、儀表板和報告。

使用者可以透過 Web 瀏覽器訪問 Metabase，而不需要安裝任何客戶端應用程式。

伺服器端（Backend）：

Metabase 的後端是用 Clojure 編寫的，利用這種語言的函數式編程特性來處理數據請求和業務邏輯。

後端與資料庫進行交互，負責生成查詢、執行分析並返回結果。

資料庫 (Database)：

Metabase 支持多種資料庫，包括 MySQL、PostgreSQL、MongoDB 等。用戶可以連接到一個或多個資料庫來進行數據分析。

Metabase 還使用內部的 SQLite 資料庫來存儲使用者配置和儀表板設置。

數據查詢引擎：

Metabase 具有一個查詢生成器，幫助用戶以可視化的方式創建 SQL 查詢，或使用簡單的點擊界面進行分析。

1.5 安裝與設定

本地安裝：JAR 包的安裝

Metabase能在任何有Java運行環境的作業系統中，以JAR包方式安裝並執行，建議使用Open JDK 11.0版本以上。

安裝 Java 運行環境

你可以先嘗試運行以下命令，查看作業系統是否已安裝Java運行環境：

C:\> java -version

Metabase支援Java 11.0版本以上，建議到 openlogic.com下載安裝：

https://www.openlogic.com/openjdk-downloads

下載並安裝 Metabase中文版jar 包

下載Metabase開源版JAR包文件 (輸入下列網址路徑，就會自動下載)

https://www.metabase.com/start/oss/jar

建立本地目錄，將下載的metabase.jar檔拷貝進去，以終端方式進入該目錄並執行下列語法：

C:\metabase> java -jar metabase.jar

終端顯示如下資訊：

即為安裝成功，進入瀏覽器，輸入 http://localhost:3000 即可開始Metabase之旅，在使用前先要初始化設置Metabase。整個安裝過程視主機配備而定，一般大約需要 5-10 分鐘就能安裝完成。

或編寫並執行批次檔 (建議)

Metabase.bat 參考內容如下

Rem ************************************************

Rem 執行 Metabase jar files

Rem ************************************************

d:

cd D:\metabase

java -jar metabase.jar

pause

Docker 安裝

Metabase通過 Dockerhub 提供官方 Docker 映射，用戶可以在任意的容器環境（docker，k8s等）中通過它快速搭建Metabase的環境。詳細的操作，請參考官網的說明。

Running Metabase on Docker

https://www.metabase.com/docs/latest/installation-and-operation/running-metabase-on-docker

使用雲端服務

Metabase 提供官方的雲端託管服務，稱為『Metabase Cloud』，它是一個按需訂閱的方案，讓使用者能直接在雲端上使用 Metabase，而無需自行管理伺服器、基礎設施或進行系統維護。此方案非常適合中小企業、創業公司，甚至大型企業內部的非技術團隊，因為它大大降低了 IT 成本和管理負擔。

Metabase 雲端服務主機

https://store.metabase.com/

雲端收費方案

https://www.metabase.com/pricing/

Metabase 雲端方案的缺點

雲端方案的優點是顯而易見的，但是在實際採用前，也應一併評估其缺點，如果這些缺點都是可接受的，當然就可以將雲端放案納入企業的評選名單列表。

成本問題

Metabase Cloud 的訂閱費用比自行架設主機的方案高，尤其是對於數據量大或有大量用戶的企業來說。隨著使用者數量增加或數據量增長，費用可能逐步上升，這對於預算有限的公司來說是一個挑戰。

靈活性受限

雖然 Metabase Cloud 將運維管理交由 Metabase 官方處理，但這也意味著用戶對於系統的自定義和擴展性有一定限制。自託管方案允許更多的系統調整，而雲端方案則主要依賴官方提供的功能與擴展。

數據控制

對於某些企業，尤其是處理敏感數據的行業，將數據存儲於第三方託管的雲端服務上可能存在隱私與安全風險，無法完全掌控自己的數據存儲方式。

數據隱私問題：一些企業或行業因法律或合規性要求，可能不適合將數據存儲在第三方的雲端服務上。

性能問題

儘管 Metabase Cloud 通常可以處理大多數常見的查詢需求，但對於處理超大規模數據集或複雜查詢來說，雲端方案的性能可能受到一定限制，尤其是需要依賴後端伺服器處理大規模資料時。

1.6 企業導入 Metabase(BI) 系統的優勢

導入 BI 的真正價值在於協助企業『數據驅動』地管理和決策，這不僅是工具的導入，更是一種數位轉型的策略，將數據轉化為價值，為企業帶來持續的競爭優勢。

1.6.1 資料分析，希望能為企業帶來的實質效益

資料來源：資料故事時代：大數據時代的未來，將由資料「說書人」定義！亞馬遜、微軟等企業巨擘都在用(Effective Data Storytelling: How to Drive Change with Data, Narrative and Visuals)

改善決策品質

BI 系統透過即時提供整合、分析後的數據資訊，能幫助管理層迅速了解業務現況，並作出更為明智的決策。這些資料往往包括銷售表現、市場趨勢、庫存狀況等，有助於避免決策僅基於直覺或有限資訊的風險。

提升運營效率

BI 工具可以自動化報表生成、簡化資料整理等繁瑣步驟，讓員工能將時間投入到更具價值的任務上。此外，透過數據分析，可以找出流程中的瓶頸或低效能環節，進而優化流程。

提高市場競爭力

BI 不僅能讓企業深入瞭解自身的業務表現，還能提供競爭對手和市場的洞察力，幫助企業調整策略，抓住市場機會。例如，透過分析顧客行為資料，企業可以推出符合客戶需求的個性化產品或服務。

降低成本

資料分析可以幫助企業精準掌握成本結構，並找出降低成本的具體方法，例如識別低效的供應商、減少庫存浪費或提升資源利用率。這些信息能幫助企業有效降低運營成本。

增進客戶體驗

BI 可從大量客戶互動資料中發掘需求和滿意度等關鍵資訊，協助企業更好地理解客戶偏好，並據此進行行銷調整、提高產品質量或提供更完善的服務，最終提升客戶的忠誠度和滿意度。

預測未來趨勢

BI 系統結合預測分析（Predictive Analytics），可以根據過去的歷史數據來預測未來趨勢，幫助企業提前規劃，做好應對市場變化的準備，減少經營風險。

1.6.2 BI 團隊應該包含哪些職位及職掌

在中小型企業中，BI 團隊通常較小，但要涵蓋數據收集、分析、解釋和呈現等多個核心職能。以下是組建一個完整且高效的 BI 團隊的建議，並說明各工位的主要職責：

BI 專案經理 (BI Project Manager)

工作內容：負責整體 BI 專案管理，包括需求分析、任務分配、進度追蹤和資源協調。確保團隊的工作與企業目標一致，並有效地將 BI 專案融入業務流程中。

職責：主導專案方向，管理跨部門溝通，確保專案按時完成並符合需求。理解業務需求並將其轉化為具體的 BI 需求，並持續與其他部門協作以優化 BI 專案效果。

數據工程師 (Data Engineer)

工作內容：負責數據基礎架構的設計和維護，包括數據收集、清洗、整合及儲存，確保數據的可用性和質量。

職責：設計和維護數據倉庫、ETL 管道、數據處理流程。與 IT 團隊合作設置數據來源管道，確保數據的準確性和即時性，並對數據安全性負責。

數據分析師 (Data Analyst)

工作內容：針對業務需求進行數據探索、分析與解釋，產出報表及可視化圖表，協助業務單位解讀數據結果並優化決策。

職責：利用 BI 工具（如 Metabase、Tableau、Power BI）生成即時報表，分析業務指標，解答具體的業務問題，並提供深入見解以支持決策。例如，分析銷售趨勢、客戶行為或產品性能，並撰寫分析報告。

商業數據科學家 (Data Scientist)（中小企業可視需求選擇性設置）

工作內容：運用數據建模和機器學習方法，進行高階的預測分析和模式識別，為未來決策提供依據。

職責：開發和應用預測模型和算法，實現銷售預測、客戶流失預測、推薦系統等。在中小型企業中，此職位可選擇性設置，或由數據分析師兼任。

BI 開發人員 (BI Developer)

工作內容：負責開發和維護 BI 平台或報表儀表板，確保報表的自動化生成及定期更新。

職責：根據需求設計和構建報表儀表板，並優化查詢性能。負責 BI 平台的日常維護、調試和擴展，例如，為業務單位定製化報表模板，並確保儀表板能夠自動更新且易於使用。

數據視覺化設計師 (Data Visualization Designer)（可選）

工作內容：將數據轉化為具有高度可讀性且直觀的視覺圖表，使數據更易於理解和呈現。

職責：設計圖表、儀表板的視覺效果，使數據視覺化更具洞察力和吸引力。通常，數據分析師可能會同時負責數據可視化工作，但在數據需求較多時，可以專門設置此職位來提升數據呈現效果。

業務合作專員 (Business Liaison)（可選）

工作內容：負責與各業務部門保持緊密溝通，幫助 BI 團隊理解業務需求，並推動 BI 成果在各業務單位中的應用。

職責：持續收集業務單位的需求變化，確保 BI 團隊的分析方向符合實際業務需求；在數據分析完成後，協助推動 BI 結果的落地應用，並對使用者進行培訓和回饋收集。

總結

中小型企業的 BI 團隊通常包含上述幾個關鍵職位，部分職位（如數據科學家、數據視覺化設計師、業務合作專員）可以根據企業實際需求靈活設置或兼職。團隊中的每個成員都扮演著不可或缺的角色，共同確保數據流程的準確性、數據分析的深度和結果呈現的高效性。這樣的組合使 BI 團隊在資源有限的情況下，仍然能為企業提供高質量的數據支持和洞察力。

1.6.3 評估並導入 Metabase(BI) 系統的步驟

導入 BI 工具 Metabase 是一個涉及多個步驟的過程，企業需要仔細規劃和執行。以下是一些主要步驟和建議，幫助企業成功導入 Metabase：

確定需求

需求分析：與各部門溝通，了解他們的數據需求和分析目標。確定哪些數據是關鍵的，以及需要生成哪些報告和儀表板。

明確指標：確定要監控的關鍵績效指標 (KPI)，這將有助於設計儀表板和報告。

環境準備

硬體和軟體需求：確保伺服器滿足 Metabase 的硬體和軟體需求（如 Java、資料庫等）。

資料庫連接：設置與主要數據源（如 MySQL、PostgreSQL 等）的連接。確保資料庫中的數據質量良好，並進行必要的清理和整合。

安裝 Metabase

選擇安裝方式：根據需求選擇合適的安裝方式，例如使用 Docker、Jar 文件或雲端服務。

配置 Metabase：在安裝後，進行基本配置，如設置資料庫連接、用戶管理等。

數據探索和可視化

數據探索：鼓勵用戶使用 Metabase 的數據探索功能，幫助他們熟悉工具的使用。

創建報告和儀表板：根據需求，開始創建自定義報告和儀表板。確保報告能夠反映關鍵指標和業務需求。

教育與培訓

用戶培訓：對終端用戶進行培訓，使他們熟悉 Metabase 的操作界面和功能，能夠自主進行數據查詢和報告生成。

資源分享：提供使用手冊、視頻教程等資源，幫助用戶更好地理解和使用 Metabase。

數據安全與管理

用戶權限管理：設置用戶群組角色和權限，確保只有授權用戶才能訪問敏感數據。

數據安全：確保數據在傳輸和存儲過程中保持安全，並遵守相關的數據隱私法律和法規。

持續優化

收集反饋：定期收集用戶反饋，了解他們的使用體驗和需求變化。

迭代改進：根據反饋持續改進報告和儀表板，優化數據流程和分析方法。

更新與維護：定期檢查和更新 Metabase 及其依賴項，確保系統的穩定性和安全性。

監控與評估

績效評估：定期評估 BI 工具的使用情況，查看是否達到預期的業務效果和數據分析目標。

數據更新：確保資料庫的數據是最新的，並定期進行數據質量檢查。

導入 Metabase 不僅僅是技術上的部署，還涉及到人員培訓和文化的改變。企業需要充分考慮其具體需求和環境，制定相應的策略和計劃，以確保導入過程的順利進行和持續的成功。

1.6.4 Gartner 的 BI 成熟度模型

Gartner 的 BI 成熟度模型（Business Intelligence Maturity Model）提供了一個框架，用於評估企業在商業智慧 (BI) 方面的成熟度，並指導企業如何從基礎階段逐步邁向高效能的數據驅動文化。該模型將 BI 的成熟度劃分為以下五個階段，每個階段都有其特定的特徵、挑戰和發展方向。

Gartner’s Data and Analytics Maturity Model(or IT Score for Data and Analytics)

不成熟階段（Unaware / Basic）

特徵：

數據分散：數據存儲在多個孤立系統中，無法整合。

手動操作：大多數數據處理和報告依賴於 Excel 或手動輸入。

缺乏策略：BI 被視為附加工具，企業尚未建立數據管理文化。

決策依賴直覺：管理層主要依靠經驗或直覺，而非數據。

挑戰：

難以獲取準確和一致的數據。

缺乏對數據分析和 BI 的意識。

開始階段（Opportunistic / Reactive）

特徵：

基礎報告：開始使用簡單的報表工具生成靜態報告。

孤立部署：BI 系統可能僅在某些部門使用，缺乏整體規劃。

反應式分析：只在問題發生後分析數據以尋找解決方案。

挑戰：

BI 部門之間缺乏協調，數據仍不統一。

難以預測問題或實現前瞻性分析。

系統化階段（Enterprise / Standardized）

特徵：

企業範圍的數據整合：建立數據倉庫，統一數據來源。

自動化報表：報表自動生成，減少手動操作。

統一工具：引入標準化 BI 工具，支持不同部門的需求。

初步分析：開始使用數據分析識別趨勢和問題。

挑戰：

部門之間對數據優先級的認識不一致。

數據治理和質量管理成為關鍵議題。

策略階段（Strategic / Managed）

特徵：

數據驅動文化：企業層級普遍接受數據為決策依據。

高級分析：採用數據挖掘、預測分析等高級技術。

數據民主化：不同角色都能訪問並使用適當的數據分析工具。

實時分析：部分決策依賴即時數據和分析。

挑戰：

確保數據的安全性和合規性。

平衡即時數據與長期分析的資源需求。

卓越階段（Transformational / Optimized）

特徵：

嵌入式 BI：BI 無縫整合到業務流程中，實現自動化決策支持。

全企業協作：部門間完全打破數據孤島，數據透明且流暢。

高效能文化：管理層和員工具備數據素養，能主動發掘數據價值。

人工智能驅動：使用 AI 和機器學習技術實現預測和自動化。

挑戰：

隨著數據量的爆炸式增長，維護系統性能和用戶體驗。

不斷更新技術以保持競爭優勢。

應用 Gartner BI 成熟度模型 的價值

現狀評估：企業可根據該模型檢視自身的 BI 成熟度，以制定優化策略。

規劃路線圖：確定需要的資源、技術和組織變革，逐步提升 BI 成熟度。

資源分配：幫助企業在每個階段專注於最重要的挑戰與需求。

增強競爭力：透過數據驅動的決策實現持續改進，助力企業在市場中占據領先地位。

這一模型的核心思想是循序漸進地提升企業的數據能力和分析水平，最終使數據成為企業業務成功的核心驅動力。

1.6.5 BI 和 Report 有何不同?

BI 和 Report 都對企業決策起到關鍵支撐作用。BI 側重於洞察未來、引導策略，而報表則著重於呈現現況、支持日常管理。BI（Business Intelligence，商業智慧）和 Report（報表）在企業數據管理中扮演不同角色，各自的著重場與功能特色如下：

定義與功能

BI

BI 是一套綜合性系統，涵蓋數據收集、分析、視覺化及決策支援，幫助企業做出更明智的決策。它能對數據進行深入分析，找出趨勢、模式或潛在商機，並支援自動化的分析流程，適用於需要長期洞察、策略分析的場景。

Report

報表則通常為靜態的數據呈現方式，多數情況下是對特定時間段內的業務數據進行匯總與報告。報表生成更注重準確和快速呈現過去的數據，適合日常的監控、例行報告，例如營收報表、庫存報表等。

適用場域

BI 系統適合應用於需要挖掘隱藏趨勢、制定長期策略的場域，例如行銷策略制定、客戶行為分析、供應鏈優化等。BI 允許使用者進行交互式探索，適合跨部門或高層管理使用。

報表則較適合例行性、流程性的業務監控，能提供清晰且快速的數據概覽。典型場景包括財務報告、員工績效追蹤、產品銷售等，主要用於支持即時決策或短期行動。

第二章

Metabase 初見

2.1 初始化設定

2.2 登入

2.3 管理員設定

2.4 基本操作介紹

第2章 Metabase 初見

安裝好Metabase後，在網址列輸入 localhost:3000即可登入Metabase。首次登入Metabase時，會自動進入『初始化設定』這個介面。筆者個人很欣賞Metabase『處處站在使用者的立場』這個設計理念，雖然有時候覺得有點過頭，但是大部分的設計都是很貼心的。

2.1 初始化設定

歡迎主頁

按『讓我們開始吧』開始管理者帳號的設定

請務必記得建立的管理者eMail(帳號) 及密碼，日後登入都必須使用。

主要用途

連線資料庫

說明：資料庫可以先不必新增，Metabase 有預設的 Sample 資料可以讓我們體驗。其他的一些設定，可以在之後進入管理員後台修改即可。

完成設定

進入Metabase 首頁

按下『隱藏這些』就會接著顯示下面的內容。前頁面主要是說說明如何將排好的報表，整合到其他網站，這個部分我們稍後會詳細說明

至此就完成了『初始化設定』

2.2 登入

可以重新登入系統，請輸入剛才建立的管理者帳號(eMail) 及密碼

如果想要修改剛才的設定，如密碼等資料，可以按右上方的工具按鈕，再選擇『帳號設定』，就可以重新設定，請依畫面內容修改，按更新後即可變更。

帳號設定

登入歷史

會顯示曾經登入系統的記錄

通知

如果有訂閱 Dashboard 或是相關的 ALERT，會在此處統一管理。

2.3 管理員設定

帳號設定完成後，接下來我們就要介紹『管理員設定』，這個部分的內容還不少，我們分為兩部分來加以說明，第一部分包含『設定』及『資料庫』，會在本節詳細說明。其他諸如『表元數據』、『帳號管理』、『權限管理』等其他設定，我們將在第七章的進階設定再來詳細說明。

設定

是Metabase的一些個人化設定，例如語系、日期顯示格式等。大部分的設定仔細看設定就會知道其用途，稍後我們會選擇較常使用的一些設定加以說明。

共分為以下13個大類：

初始化設定

一般設定

更新

電子郵件設定

Slack

授權認證

地圖

本地化

上傳

公開分享

嵌入

許可證和計費

Cloud

初始化設定：

這個主選單的功能，和系統剛安裝完成後，會進入的『初始化設定』是相同的概念，起的是一個導航者的作用

點選後會導覽至指定的作業，例如點選

『新增一個資料庫』：就會切換到新增資料庫的頁面(如下)

輸入相關的參數設定後，就可以建立一個新的資料庫，這也是Metabase 資料分析的起點，連接資料來源。

『電子郵件設定』：

以下是以 Gmail 來當作發信主機的設定，如果發信的頻率不高，Gmail是一個很好的選項。如果要用公司的 email 主機發送，則要請貴公司的網管人員協助。

Gmail 當前的設定也加強了一些安全性的設定，主要是 SMPT密碼的設定，請參考 https://www.ibest.com.tw/news-detail/gmail-smtp/ 的說明。

Step1：設定發送信件的 SMTP 發信主機的設定

Step 2：發信人的一些別名設定(可以不設定)

Step 3：發送測試信件，確認前面的設定是正確的

『組織提問』：切換到首頁的『站內分析總覽』等。

『初始化設定』完成設定後，該項目就會被勾選。

一般設定

名稱、網站地址等都是很一般的設定，比較要注意的是『方便理解的資料表和欄位名稱』這個設定，一般我們都會勾選預設值。

勾選後系統關於資料表的顯示如下，如果你還是想直接看到實際的資料表名稱，就不要勾選這個選項，一般而言，熟悉資料庫的技術人員，會比較希望看到實際的資料表名，一般使用者，較傾向勾選這個選項。

本地化：可以設定語系、日格格式等本地化的設定。

上傳：Metabase 允許上傳 csv 檔，並寫入到指定的資料庫

資料庫

在 Metabase 中，連接不同的資料庫是其主要功能之一，它支援多種常見的資料庫。根據不同資料庫的特性，連接設置會有所不同，以下是 Metabase 支援的幾種常見資料庫，以及連接時需要注意的重點設定。

MySQL/MariaDB

驅動程序：Metabase 預設支援 MySQL 和 MariaDB，不需要額外安裝。

資料庫版本：確保使用支援的 MySQL (5.7+) 或 MariaDB (10.2+) 版本。

設定重點：

Host：輸入資料庫伺服器 IP 或主機名稱。

Port：預設為 `3306`。

Database Name：輸入要連接的資料庫名稱。

Username/Password：提供有效的用戶名和密碼。

SSL 設定：若資料庫啟用了 SSL，需在 Metabase 連接配置中勾選 "Use a secure connection (SSL)"。

權限：確保用戶具有 `SELECT` 權限，否則可能無法讀取表格資料。

PostgreSQL

驅動程序：Metabase 預設支援 PostgreSQL，不需安裝驅動。

資料庫版本：支援 PostgreSQL 9.6 及以上版本。

設定重點：

Host：輸入資料庫伺服器 IP 或主機名稱。

Port：預設為 `5432`。

Database Name：輸入要連接的資料庫名稱。

SSL 設定：如果啟用了 SSL，需要在 Metabase 中勾選 "Use a secure connection (SSL)"，並配置 CA 憑證。

Time Zone：PostgreSQL 的時區設置對時間查詢影響很大，建議設置為 `UTC`。

權限：Metabase 用戶需具備 `SELECT` 權限，並且若涉及 materialized views，需具備 `REFRESH` 權限。

Microsoft SQL Server (MSSQL)

驅動程序：Metabase 內建 MSSQL 驅動。

資料庫版本：支援 SQL Server 2012 及以上版本。

設定重點：

Host：輸入資料庫伺服器 IP 或主機名稱，格式為 `hostname:port`。

Port：預設為 `1433`。

Database Name：輸入要連接的資料庫名稱。

Authentication Type：支援 SQL Server 驗證和 Windows 驗證。若使用 Windows 驗證，需在 Metabase 啟動參數中指定 `integratedSecurity=true`。

SSL/TLS 設定：如使用 TLS，加密連線需啟用 "Encrypt connection"。

時區問題：MSSQL 常使用本地時區，可能需要設置 Metabase 時區為 `UTC`。

Google BigQuery

驅動程序：Metabase 支援 BigQuery，但需要配置 Google Cloud 驗證。

設定重點：

Service Account Key：需提供 Google Cloud 的 Service Account JSON 憑證文件。

Project ID：Google Cloud 專案 ID。

Dataset：BigQuery 中的資料集名稱。

權限：Service Account 需具備 `BigQuery Data Viewer` 權限。

Query Cache：BigQuery 查詢成本高，建議在 Metabase 中啟用 Query Caching。

MongoDB

驅動程序：Metabase 預設支援 MongoDB，但目前僅支援 MongoDB 4.0+ 版本。

設定重點：

Host：輸入 MongoDB 伺服器 IP 或主機名稱。

Port：預設為 `27017`。

Database Name：輸入要連接的資料庫名稱。

Username/Password：若 MongoDB 啟用了驗證，需提供用戶名和密碼。

SSL/TLS 設定：若使用 SSL，需要勾選 "Use a secure connection (SSL)"。

資料結構：MongoDB 資料為 NoSQL 格式，Metabase 可能無法直接顯示嵌套資料，需要在查詢中展開或使用 `$unwind`。

Amazon Redshift

驅動程序：Metabase 預設支援 Redshift。

設定重點：

Host：輸入 Redshift 集群的主機名稱。

Port：預設為 `5439`。

Database Name：輸入 Redshift 資料庫名稱。

SSL 設定：Redshift 建議使用 SSL 加密連接。

權限：Metabase 用戶需具備 `SELECT` 權限，並可使用 Amazon IAM 驗證進行連接。

Snowflake

驅動程序：Metabase 支援 Snowflake，但需額外配置 ODBC 或 JDBC 驅動。

設定重點：

Account：輸入 Snowflake 帳號 (格式為 `<account_name>.snowflakecomputing.com`)。

Warehouse：指定 Snowflake 的計算倉庫。

Role：提供 Snowflake 用戶的角色名稱。

權限：Metabase 用戶需具備 `SELECT` 權限，以及 Warehouse 的使用權限。

Oracle Database

驅動程序：Metabase 支援 Oracle，但需要下載並安裝 Oracle JDBC 驅動 (`ojdbc8.jar`)。

設定重點：

Host：輸入 Oracle 資料庫伺服器 IP。

Port：預設為 `1521`。

SID 或 Service Name：提供 Oracle 的 SID 或 Service Name。

SSL 設定：若使用 SSL，需配置憑證。

權限：Metabase 用戶需具備 `SELECT` 權限。

總結：不同資料庫在連接設置時，重點在於以下幾個方面：

1. 版本支援：確認 Metabase 是否支援該版本的資料庫。

2. 權限：確保 Metabase 用戶具備足夠的查詢權限。

3. SSL/TLS 加密：針對需要安全連接的資料庫，設置 SSL/TLS 參數。

4. 時區問題：確保 Metabase 和資料庫的時區設置一致，避免時間查詢出錯。

這些基本設置完成後，Metabase 應能夠順利連接並開始進行資料查詢與分析。

2.4 基本操作介紹

Metabase 的介面設計簡潔直觀，主要分為數個區域，每個區域有其特定的功能。掌握這些區域後，使用者將能快速操作與分析資料。Metabase的操作介面設計的相當直覺，只要花一點時間，基本上很快就可以上手使用。

總覽

當使用者登入 Metabase 後，會看到一個主頁儀表板，提供資料概覽、快速訪問常用功能，並且可以根據最近的活動情況進行相關操作。這是使用 Metabase 的起點，幫助你快速進入工作流程。

主頁[1]：包含最近查看的問題、儀表板、收藏夾等

快速創建[3]：可以快速建立新問題或儀表板的按鈕

導覽欄[1]

Metabase 的左側導航欄是用戶進行不同功能操作的核心位置，這裡列出了所有重要的功能模塊，便於快速切換。

集合

站內分析總覽

您的個人收藏：自行建立的所有圖表及 Dashboard。

Examples：Metabase 安裝後已預設建立的參考範例，包括Dashboard、模型及各類已設定好的圖表等。

瀏覽

模型：顯示已建立好的模型(Data Modaling)，建立方式請參考 4-4 節的說明。

資料庫：列出所有已連接的資料庫。點擊某個資料庫可以瀏覽其表格結構並開始創建問題。

問題建立介面 [3]

當進入問題建立 (Create Question) 模塊後，Metabase 提供簡單直觀的查詢建構器，幫助使用者從資料庫中提取所需的資料並進行分析。此介面設計注重可操作性和靈活性，無需編寫代碼也能進行基本查詢。

選擇資料庫與資料表：首先選擇要查詢的資料庫和資料表。

篩選器與分組：可以通過拖放方式添加篩選器、排序規則和分組條件。篩選器支持多個條件，如日期範圍、特定數值篩選等。

圖表類型選擇：Metabase 提供多種圖表選項，包括柱狀圖、折線圖、餅圖等。根據資料的特性，系統會自動生成適合的圖表樣式，使用者也可以手動切換圖表類型。

即時結果顯示：當用戶進行查詢操作時，結果會在右側實時顯示。這讓用戶可以快速檢視資料結果，並對查詢進行調整。

儀表板管理介面 [3]

在 Metabase 中，儀表板 (Dashboards) 是用來匯集多個資料查詢結果於一處的工具。它的操作界面設計簡單直觀，幫助使用者快速設置和管理儀表板。

添加問題到儀表板：用戶可以從已創建的問題中挑選並添加到儀表板中。問題可以是資料表格或圖表形式。

拖放設計：儀表板設計支持自由拖放佈局。用戶可以根據需求調整每個問題模塊的大小和位置，打造專屬的視覺化界面。

篩選器與互動：Metabase 提供跨問題的全局篩選功能，允許用戶在一個篩選器中控制整個儀表板的資料顯示。例如，你可以設置一個日期範圍篩選器，讓儀表板中的所有圖表都依此更新。

共享與嵌入：儀表板可以通過鏈接共享給其他用戶，甚至可以嵌入到其他網站或應用程式中進行展示。

第三章

資料分析的前世今生

3.1 使用BI的前置作業

3.2 如何入『資料分析』的門

3.3 Metabase的核心概念

第3章 資料分析的前世今生

Matabase是一個BI的工具，和建築物施工時使用的各式機械設備是一樣的。想要蓋好一棟房子，從業主的需求、基地大小，建築風格、使用目的、施工團隊一直到最後的水電裝潢、驗收等等，環環相扣，缺一不可，才有最後的成品。資料分析也是一樣，不是只要學會Metabase這個工具，就萬事OK，它有一些基本功及必要的前置作業，只有把這些都掌握了，才能做好資料分析。

參考資料來源網站：https://blog.tibame.com/?p=17886&fbclid=IwY2xjawGuQ0hleHRuA2FlbQIxMAABHSBfMxelALUpnv6Xj0KJOGTO8VcXsVA__B51LrpWe9X-0pHR5993fBa1fw_aem_CM0mtcjLlu9fdSI4u-5IFg

3.1 使用BI的前置作業

在使用商業智能（BI）工具進行分析之前，資料彙總、整理和篩選的過程至關重要，因為這能夠確保輸出的報告和分析結果對企業真正有價值。通常會包含以下這些步驟：

理解需求與目標

在開始處理資料前，需與企業的相關部門或決策者清楚了解業務需求和分析的目標，這能幫助你釐清哪些資料是重要的，哪些是可以忽略的。關鍵問題包括：

企業希望解決什麼問題？

需要做什麼樣的決策支持？

哪些指標最能反映業務的關鍵績效？

資料來源辨識

資料來自於不同來源如：

內部系統（ERP、CRM、HR 系統等）

外部數據來源（市場調查、社交媒體、公共數據等）

結構化資料（如資料庫、Excel 表格）

非結構化資料（如文件、圖片、社交媒體內容）

需要確認哪些資料來源是可用的、準確的以及有價值的。這樣可以避免收集不必要的資料。

資料收集與整合

ETL（Extract, Transform, Load）流程：首先，從多個來源提取資料，進行清洗和轉換，再將其載入統一的資料倉儲（如資料庫或雲端儲存）。這一步對於處理不同格式的資料至關重要。

API 數據整合：對於來自不同應用程式或系統的資料，可能需要通過 API 進行整合，以確保資料及時、準確地整合。

資料匹配與關聯：有時候不同來源的資料需要進行匹配，比如客戶資料可能來自 CRM，而銷售數據來自 ERP，需透過某些共同欄位（如客戶 ID）來關聯這些數據。

資料清洗與標準化

多個來源的資料常常存在不一致、缺失或重複的情況，因此資料清洗是必須的步驟：

處理缺失值：針對缺失資料，可能需要選擇填補、刪除或忽略，具體取決於該欄位對分析的重要性。

刪除重複數據：避免重複資料影響分析結果，如重複的交易紀錄或重複的客戶資料。

標準化資料格式：不同資料來源可能有不同的格式，例如日期格式、貨幣單位等，這些資料需要統一成標準格式。

資料篩選與過濾

接下來，需要根據業務需求過濾出對分析有用的資料：

時間範圍過濾：篩選出與業務需求相關的時間段內的數據，比如只分析最近一年的銷售數據。

地區或市場過濾：如果公司有多個市場或地區，可能只需要分析某個特定區域的數據。

產品篩選：在大型企業中，可能不需要對所有產品進行分析，只需要針對特定品類或熱門產品做更深度的分析。

資料轉換與聚合

資料轉換與聚合能夠將大量細節資料簡化成有價值的指標與指數：

計算衍生指標：根據基礎資料計算出需要的指標，例如平均值、增長率、利潤率等。

資料分組與分類：可以根據業務需要，將資料按類別（如地區、時間、客戶類型等）進行分組。

聚合資料：針對大量交易數據，可以通過聚合來生成統計性資料，如每日銷售總額、每月的客戶數量等。

資料分析

主要角色是將已蒐集和整理的資料，轉化為有價值的洞察，以支持商業決策。這其中包括多種技術，如 OLAP（Online Analytical Processing）、資料探勘（Data Mining）、以及 AI（Artificial Intelligence）相關技術，每一項技術都扮演著不同的功能並帶來具體的成果：

OLAP：讓使用者可以從多個維度（如時間、地理區域、產品類別）深入了解資料。

資料探勘：應用統計、機器學習演算法來分析大規模資料集。

模式發現：例如，找到購買 A 產品的人通常也購買 B 產品。

預測模型：如顧客流失預測、銷售預測等。

分群結果：如將顧客分為高價值與低價值群體，便於個性化行銷。

資料分析的主要成果：

決策支持：透過數據驅動的建議，提供管理層清晰的決策依據。

績效提升：找出瓶頸與潛力增長點，提高效率與績效。

風險管理：識別潛在風險並提出預防措施。

創新啟發：發現未來可能的市場機會與創新點。

資料輸入 BI 工具

經過以上步驟處理過的資料才適合進行 BI 工具分析，這樣能夠確保報告和儀表板所顯示的內容是準確且具備決策價值的。

資料的彙總、整理和篩選是『資料分析』的一個至關重要的處理步驟，它能夠確保資料準確且具備決策支持的價值。清洗、標準化、篩選和轉換資料後，再通過 BI 工具進行分析，企業才能做出有依據的、具有前瞻性的決策。成功的分析需要將工具的功能與商業目標結合，才能真正支持業務成長與創新。

3.2 如何入『資料分析』的門

入門資料分析的過程可以分成以下幾個關鍵步驟：

掌握基本統計知識

資料分析的基礎是統計，因此了解一些基本的統計概念如平均值、中位數、標準差、相關係數等，能夠幫助你理解數據的趨勢與變化。

熟悉常用工具

Excel：簡單而功能強大的工具，可以進行數據清理、篩選、基本的圖表分析。

Python：對於進階分析非常實用，尤其是配合 Pandas、NumPy、Matplotlib 等資料分析庫。

R：另一個流行的資料分析語言，擅長統計分析和可視化。

BI 工具（如 Tableau、Power BI、Metabase）：可以快速進行商業數據可視化和報告生成。

學習資料清理與前處理

在資料分析過程中，資料往往並不完美，會有缺失值、異常值或格式錯誤。因此，學習如何進行資料清理是重要的一步。這包括：

資料格式化

缺失值處理

異常值檢測

資料正規化與標準化

Python 中的 Pandas 庫是一個進行這類操作的有力工具。

進行實際的專案分析

找到真實的數據集來分析是學習的最好方式。可以從網上下載開放數據集，或者使用工作中的數據。從以下幾個方向進行分析：

探索數據集中的模式與趨勢

根據具體問題設計假設並進行驗證

使用統計方法或機器學習技術來預測結果

了解實際的商業應用

資料分析的價值在於它能夠解決實際的業務問題。例如：

市場分析：了解消費者行為、趨勢與預測。

財務分析：分析企業的財務健康狀況。

客戶關係管理（CRM）：分析客戶資料，提升客戶滿意度和保留率。

牛肉在哪裡？

在前面的章節，筆者詳細描述了企業要使用 BI 的前置作業及如何入門的基本概念。但是一定會有很多同學用斜眼喵我，說我不食人間煙火。說了一大堆，但是牛肉在哪裡？對於尚未入門的同學，前面的內容太過於高大上，初學者最難的是如何跨出第一步，能不能來點實際的？

針對這個問題，我在剛開始學習 BI 時，也常有類似的困惑，市面上有非常多好用的工具，但是我不曉得我能做什麼。甚至還常會受到舊有思維的限制，很難做出深度和廣度兼具的分析。事實上，這是一個普遍的難題，我個人的建議，是要多看案例，看看別人是怎麼做的，然後結合自身的需求，不斷的實作練習，就會自然而然的打通任督二脈。請注意：『結合自身的需求』是最重要的重點，空想是沒有用的，資料分析是實用性極強的科學，如果沒有迫切的需求，就不容易深入學習料分析的精隨。

接下來，我推薦有心學習資料分析的同學一個超讚的網站 Kaggle。它提供了許多資料科學比賽，並提供很多整理好的資料集(DataSets)，能幫助你與社群互動並提高技術。

官網： https://www.kaggle.com/

Kaggle介紹https://medium.com/jameslearningnote/%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E7%AC%AC1-3%E8%AC%9B-kaggle%E4%BB%8B%E7%B4%B9-f0fd99d30f92

一個主要想研究 NBA各個球隊和傷病之間的關係的完整分析案例

https://yuxuanwu17.github.io/2021/01/31/nba伤病分析

我如何分析客戶流失預測？Kaggle比賽思路分享

https://medium.com/finformation%E7%95%B6%E7%A8%8B%E5%BC%8F%E9%81%87%E4%B8%8A%E8%B2%A1%E5%8B%99%E9%87%91%E8%9E%8D/%E6%88%91%E5%A6%82%E4%BD%95%E5%88%86%E6%9E%90%E5%AE%A2%E6%88%B6%E6%B5%81%E5%A4%B1%E9%A0%90%E6%B8%AC-kaggle%E6%AF%94%E8%B3%BD%E6%80%9D%E8%B7%AF%E5%88%86%E4%BA%AB-daecd888a91

累積機器學習實作經驗的好地方－Kaggle 平台介紹

https://ithelp.ithome.com.tw/articles/10306093

數據分析初入門：怎麼從觀察別人的作品集培養數據分析能力？

https://aderlab.com/data-analytics/data-entry-concept/

想提高数据科学技能？这10 个Kaggle 的数据集你一定要练！

https://www.dataapplab.com/10-datasets-from-kaggle-you-should-practice-on-to-improve-your-data-science-skills/

持續學習並擴展技能：

資料分析是個不斷變化的領域，學習如何應用機器學習、數據挖掘等技術，可以進一步提升分析能力。上面提到的一些參考內容，希望你幫助您在學習的過程中有一些啟發，多做、多思考是不二法門。

除了以上的網站內容，是否有更實際的解決方案實例?

筆者個人強烈推薦『獨角獸專案』（The Unicorn Project）這本書，IT相關人員應該列為此生必讀的經典書單之一，建議至少應該精讀2遍。

『獨角獸專案』（The Unicorn Project）是一部關於企業數位轉型和高效能團隊的小說，透過故事形式探討如何建立敏捷性、提升 IT 部門效率以及以資料為核心的決策模式。擷取與 BI（商業智慧）相關的內容整合說明如下：

資料分析與商業智慧的價值

書中強調，企業需要將數據與業務目標結合，利用資料分析與 BI 工具來協助決策，改善產品開發速度並提升用戶體驗。透過將資料整合至分析平台，決策者可以快速辨識市場趨勢和內部瓶頸，從而做出準確反應。

數據透明與可視化

在書中，「五大理念」中的一項核心即為簡潔性與區域性（Locality and Simplicity）。這提醒企業應注重資料的可得性與透明度，確保團隊成員能快速存取所需資訊並從數據中獲得洞見。這與 BI 中提倡的資料可視化工具相吻合，有助於提升數據分析的效率與準確性。

資料管道與資料倉儲的關鍵角色

書中描述了資料管道的搭建過程以及如何運用資料倉儲解決數據孤島的問題。透過整合多源數據並建立可擴展的資料架構，企業能更有效地進行跨部門協作，推動敏捷開發和持續交付。

場景化應用

例如書中的案例展示了如何利用 BI 技術解決銷售效率低下的問題，通過建立銷售漏斗圖，監測每個階段的客戶流失率，並快速優化市場策略與產品設計。

這本書透過生動的故事情節，闡述了 BI 和資料分析如何驅動企業轉型與競爭力提升，對於從事 IT、資料科學或商業策略規劃的人士提供了深刻啟發。更多詳情可參考書籍內容或其推薦分析。

3.3 Metabase 的核心概念

Metabase 是一款功能強大的開源商業智能工具，它的核心概念圍繞數據查詢、視覺化、報表生成和儀表板組織進行設計。理解這些核心概念能幫助用戶充分發揮 Metabase 的功能，以便進行有效的數據分析和決策支持。

連接資料庫：在 Metabase 中添加資料庫連接，輸入資料庫的連接信息。

已於 2.1『初始化設定』的『新增資料庫』中說明。也可以在『管理員設定』的『資料庫』中新增。

問題 (Questions)：

在 Metabase 中，『問題』是用戶對資料庫提出查詢並獲取結果的基本單位。問題的創建方式非常靈活，無論是非技術用戶還是數據分析師，都可以根據自己的需求使用不同的方法來生成問題。

問題的類型：

簡單問題：不需要編寫 SQL 查詢，只需使用 Metabase 的可視化查詢建構器來挑選數據表，添加篩選器和分組條件，即可快速生成問題。例如，使用者可以在介面中選擇「銷售數據」表格，篩選特定時間範圍內的數據，並進行按月份的銷售總額分組。

自定 SQL 問題：對於有技術能力的用戶，Metabase 提供了 SQL 編輯器，允許用戶撰寫自定義的 SQL 查詢來提取更複雜的數據集。這對於需要執行聯合查詢、子查詢或處理多表格數據的分析師特別有用。

問題創建過程：

選擇數據源：選擇要查詢的資料庫與具體的表格。

應用篩選器與分組：篩選條件可以幫助縮小數據集的範圍，而分組則能讓用戶按照某些欄位（如日期或分類）進行彙總。

選擇視覺化方式：問題生成後，Metabase 會自動提供合適的圖表來展示結果，如柱狀圖、折線圖、餅圖等。使用者也可以根據需求手動更改圖表類型。

儀表板 (Dashboards)：

『儀表板』是 Metabase 中用來整合和展示多個問題結果的工具。通過儀表板，用戶可以在一個視覺化界面中同時查看多個數據點，方便進行全方位的分析和監控。

儀表板的功能

組合多個問題：用戶可以將多個問題的結果整合到同一個儀表板中，並且可以按需求調整每個問題的顯示區域、大小和位置，打造一個合適的數據展示介面。

動態篩選：儀表板允許用戶設置全局篩選條件，並且可以跨多個問題進行篩選。例如，可以設置一個日期範圍篩選器，當用戶更改日期時，整個儀表板上的所有圖表都會根據該篩選器更新數據。

視覺化定制：用戶可以通過簡單的拖放操作來調整儀表板的佈局，並且可以對圖表的顯示方式進行自定義，使之更具可讀性和直觀性。

分享與嵌入：儀表板可以生成一個分享鏈接，讓團隊成員或客戶在不同權限下查看儀表板。企業還可以將儀表板嵌入到自己的網站或應用中，實現數據展示的自動化。

資料瀏覽 (Data Exploration)

『資料瀏覽』是 Metabase 提供的數據探索工具，它允許用戶直接瀏覽已連接資料庫中的表格和數據。在不熟悉數據結構的情況下，這個功能對於了解數據集非常有幫助。

資料瀏覽的功能：

表格瀏覽：Metabase 將資料庫中的每個表格以直觀的方式展示，包含字段名稱、類型和範例數據。使用者可以透過點擊欄位快速了解該數據表的結構。

自動生成問題：在資料瀏覽過程中，用戶可以通過簡單的點擊來創建基本的數據查詢。例如，當瀏覽「訂單數據」時，系統可以自動生成按日期排序的銷售數據查詢。

即時篩選與檢視：使用者可以直接在資料瀏覽介面中應用篩選器、分組條件來即時查看數據變化，這對於數據探索和初步分析非常實用。

生成圖表

製作『資訊看板(Dashboard)』

做好多張圖表之後，可以使用『資訊看板(Dashboard)』將圖表放在同一個頁面中展示，並還可以加上篩選框、文本卡片加強。

分享

除了要登入才能觀看(編輯)提問、Dashboard，它也可以個別將其公開分享出來，不需要登入就可以查看，需要分享給其他人非常方便。

第四章

探索數據資料

4.1 資料庫連接與管理

4.2 資料倉儲

4.3 查詢三劍客

4.4 資料模型(Data Modeling)

4.5 NBA 賽季資料整理

第4章 探索數據

探索數據的過程，就是從大量資料中挖掘出隱含的、對決策有潛在價值的關係、模式和趨勢，並用這些知識和規則(稱之為洞見)，藉由BI工具建立可視化界面，最終用於企業決策的參考。在執行的過程中採用的方法，類似於從大量紛亂、多元的資料中『淘金』，就是從資料中獲取智慧的過程，找出從資料到價值的解決方案。

本書稍後會配合由 Kaggle 取得的 NBA 職籃賽季的完整資料，用一個實際的大數據，深入的探討Metabase如何從『概念發想』『資料整理』這個重要的第一步。然後，在接下來的章節中，繼續加上『可視化報表』的圖表及 Dashboard 的使用說明，最後完成實際的大數據的分析。

資料來源：https://www.woshipm.com/

4.1 資料庫連接與管理

Metabase 支持多種資料來源，例如 MySQL、PostgreSQL、MongoDB、SQL Server、Google BigQuery 等。使用者可以輕鬆地將資料庫連接到 Metabase，並在應用內管理這些資料來源。

在連接資料庫後，Metabase 會自動掃描資料庫的結構，並將其轉化為易於使用的格式，方便後續查詢和報表的生成。

當實體資料庫的欄位結構有異動時，可執行後同步。

當原始資料庫的Table被刪除或重大變更時，可執行，但務必要確認清楚。

4.2 資料倉儲

要討論資料探索，就不能不提『資料倉儲』這座大山。資料倉儲是資料分析的基礎，負責存儲已經處理和整理過的資料，適合用來做決策分析和長期趨勢的觀察，而原始數據則是未經處理的、細節豐富的資料。也就是說，資料倉儲可以視為是一種經過結構化，可以查詢和分析的交易資料副本。

資料倉儲的主要用途

資料倉儲（Data Warehouse）在資料分析中扮演著關鍵角色，特別是當需要整合大量的資料並進行歷史分析時。資料倉儲主要用途如下：

資料整合與彙總

資料倉儲會從多個不同的來源（如企業系統、資料庫、外部平台等）匯入資料，並將這些資料清理、轉換後存儲起來。它通常會進行資料的彙總與格式化，以便於後續分析。

歷史數據保存

資料倉儲適合存儲歷史數據，方便用來進行長期趨勢分析和預測，這些資料通常會保存多年，並根據不同的維度進行分析。

提升查詢與分析效率

由於資料倉儲內的資料已經被優化和整理，查詢效率通常比直接從原始數據（raw data）中獲取要高得多。這對於需要頻繁進行複雜查詢或生成報表的應用非常重要。

支持決策支持系統（DSS）

資料倉儲常被用於企業的決策支持系統，這類系統幫助管理層在決策時，基於整合的、精煉的歷史資料做出更準確的判斷。

資料倉儲與原始數據（Row Data）的差異

資料處理：

資料倉儲：資料通常經過 ETL（Extract, Transform, Load）流程，即提取、轉換並載入，這意味著資料在存儲前已經被整理、清理、轉換成一致的格式。

原始數據：資料庫儲存的資料與營運（Operation）相關，可能含有錯誤、重複、不一致的資料，需要進行進一步處理才能被有效地使用。

數據的粒度：

資料倉儲：資料倉儲中的數據通常經過彙總，具有較高的粒度，適合用來進行高層次的分析（例如，按月、按區域的銷售總額）。

原始數據：原始數據的粒度較低，它保留了最細節的資訊。

查詢效能：

資料倉儲：由於資料倉儲經過優化，專門用來處理查詢和分析，查詢效能通常較高，適合用來做報表生成、儀表板、OLAP（線上分析處理）。

原始數據：直接從原始數據中查詢分析，可能會因為資料量過大或未經優化而導致查詢性能低下。

用途：

資料倉儲：專注於歷史資料的分析與決策支持。

原始數據：更適合進行即時操作處理或細節查詢，但不適合大規模的分析用途。

資料倉儲的核心步驟：ETL

資料倉儲 (Data Warehouse) 的核心步驟之一就是 ETL，這是一個將數據從多個來源提取 (Extract)、轉換 (Transform) 並載入 (Load) 到目標資料倉儲中的過程。ETL 是確保資料能夠在資料倉儲中整合和使用的關鍵步驟。

https://code.likeagirl.io/olap-oltp-and-data-warehousing-understanding-the-pillars-of-data-management-a29758814f6e

提取 (Extract)

從各種資料來源（如關聯式資料庫、文件系統、API、雲服務等）中提取原始數據。這些來源可能會有不同的格式和結構。

轉換 (Transform)

將提取的原始數據轉換為一種統一的格式或結構，以符合資料倉儲的需求。

包含步驟如清洗資料（去除重複、不正確或不完整的數據）、格式轉換、資料整合、運算和聚合等。

有時需要進行資料的歸一化或去重等操作，以便在倉儲中更容易分析和使用。

載入 (Load)

將經過轉換的資料載入到資料倉儲中，這個過程可能是一次性大量載入，也可能是逐步增量式地更新。

4.3 查詢三劍客

在 Metabase 中，每一個資料分析的主題，例如【某球隊近10年平均每場得分趨勢】，都是圍繞著「提問 (Question)」來進行管理。在首頁的『+ 新的』按鈕中，除了『資訊看板 (Dashboard)』作為資料視覺化呈現的容器，與『集合 (Collection)』用來管理左側選單的目錄外，前2項功能都是『提問 (Question)』，而『模型(Modaling)』是可以重複使用並管理的Query，也是『提問』時可以選擇的資料來源。這樣的設計讓 Metabase 的使用者可以輕鬆地管理和分析資料，並且靈活地進行各種數據視覺化和報表生成。

提問 (Question)：Metabase 提供圖形化的介面來創建問題（Queries），即使使用者不懂 SQL 也可以透過點選和拖拉來篩選資料、建立視覺化圖表。

按下『新的』就會看到這五個選項。選擇『提問』會顯示下圖，第一個步驟就是要選擇『起始資料』的來源。除了剛提到的『模型』及『資料表』外，也可以把『已保存的問題』當作一個資料來源。這些都是Metabase的特色做法，可以斟酌使用。但是筆者個人還是較傾向使用資料倉儲的ETL方式自行準備資料，稍後會在 4.5 節有實際的操作說明

選擇資料來源(Table) 後，在設定『匯總(Summarize)』及『分組欄位(Group By)』後，即可存檔。這2個設定是可視化要呈現的『維度』及『顯示資料』，多做練習就會熟練其用途及顯示的樣式。

SQL 查詢 (SQL Query)：對於進階使用者，Metabase 提供了 SQL 編輯器，允許直接編寫查詢語句來深入探索資料。

按下『儲存』您會發現，跟前面的提問一樣，還是存成『新問題』，也就是說，Metabase是考量到並非所有的資料分析師都熟悉SQL語法，所以提出的一個智能化工具。

模型 (Model)：先將資料儲存為「問題 (Question)」，再進一步轉為模型。

新增『模型』時，會先出現下面的選擇畫面：

使用筆記本編輯器：會進入『提問』的新增畫面，操作同前說明。

使用本機查詢：會進入『SQL查詢』的新增畫面，操作同前說明。

存檔後，就已經儲存成『模型』。此時，系統會自動進入『提問』選擇資料表後的次一個步驟，如果繼續編輯，就會進入『提問』的流程，也可以先離開本作業，在提問流程中，選擇『模型』即可。

所以可以把『模型』視為可重複使用的 Query(reusable Query)。關於『模型』，我們會在下一節詳細說明。

除了直接新增『模型』，也可以隨時把『提問』轉為『模型』。

除了可以把『提問』轉為『模型』，Metabase 也可以在提問中，直接使用『模型』。

模型名稱不能直接作為引用，在Metabase中，模型引用需要使用 {{#ID}} 格式，而不是模型名稱。在Metabase中，每個模型會被分配一個ID。這個ID可以在模型的URL中找到，如：

https://metabase.gex.com.tw/model/ 67

https://metabase.gex.com.tw/model/ 68 -dw-player-statistics

WITH model AS {{#67}}

SELECT * FROM model;

4.4 資料模型(Data Modeling)

Metabase 的 Data Modeling 功能是讓使用者能夠以更結構化的方式理解和管理資料。其核心目的是讓數據分析過程更加直觀和高效，並使非技術人員能夠更輕鬆地進行數據查詢和分析。Data Modeling 的主要用途是通過清晰的資料定義，讓使用者可以簡化與標準化數據的使用，並進一步增強資料的可理解性和易用性。

4.4.1 基本介紹

Data Modeling 的用途

簡化資料查詢：透過對資料庫結構的定義與標籤，使用者可以更輕鬆地找到所需的資料表、欄位，並了解其含義，減少查詢時的困惑。

資料的一致性：可以為資料表及欄位命名更具描述性的名稱，並定義欄位的用途，使團隊中的所有使用者對資料的理解一致。

設定資料格式與類型：定義欄位的資料格式（例如：日期、數字、貨幣等），讓資料的表示更符合實際業務需求，並自動應用相關的格式轉換。

設置預設篩選條件：可為使用者預設常用的篩選條件，減少每次查詢時的重複工作，提高效率。

提高安全性與權限控制：Data Modeling 還可以配合 Metabase 的使用者權限系統，限制某些敏感欄位的存取，保障資料安全性。

新增計算欄位：直接在介面上添加基於現有資料的計算欄位，例如「利潤 = 營收 - 成本」。

清理資料：隱藏不必要的欄位或重新命名欄位，使其更易於理解。

使用方式

建立數據模型：

進入 Metabase 的「資料庫管理」(Admin Panel) 中，選擇你要進行數據建模的資料庫。

點擊要修改的表格（Table）後，進入資料表的欄位管理介面。

修改欄位名稱：

針對每個欄位，你可以自訂更具業務描述的欄位名稱，這樣非技術人員在建立查詢時能更容易理解數據的用途。

設定欄位類型：

你可以為每個欄位設定具體的資料類型，例如數字、日期、分類或其他特定類型。這將幫助 Metabase 更智能地處理查詢和數據展示。

例如，將日期欄位標註為「日期」類型，系統會自動提供與時間相關的篩選選項，如「今年」、「上個月」等。

新增描述與註解：

你可以為資料表和欄位新增註解，說明該欄位的具體用途或業務背景，幫助其他使用者理解資料的意圖。

設定欄位的範圍與篩選條件：

在數據建模中，你可以預先定義篩選條件，例如設定某欄位只顯示特定範圍內的資料，這樣可以避免使用者選擇無效或不正確的資料。

使用公式欄位：

Metabase 支援透過公式生成計算欄位，這可以用於展示衍生資料或計算結果，從而簡化使用者的查詢步驟。

儲存模型：

完成資料模型設置後，儲存變更。這些設定會即時應用在所有使用者查詢過程中，提升資料的使用便捷性。

案例：應用於財務數據分析

假設一個公司希望使用 Metabase 進行財務數據分析，資料庫中包含「銷售額」、「成本」和「淨利潤」欄位。通過 Data Modeling，管理員可以：

將「銷售額」和「成本」設置為貨幣格式，讓數據顯示更加符合財務需求。

為「淨利潤」欄位新增一個公式欄位，根據「銷售額 - 成本」來計算。

為每個欄位添加註解，說明各自的商業背景和如何使用這些數據。

對於「日期」欄位，設定特定的時間範圍，例如只顯示最近一年的數據。

這樣一來，財務部門的成員即使不熟悉 SQL 語言，也可以快速理解並查詢公司財務狀況。

Metabase 的 Data Modeling 功能是一個強大的工具，能夠幫助企業更好地組織和解讀資料，特別是在跨部門合作中。通過對資料的標準化、格式化和註釋，非技術人員也能夠更直觀地使用 Metabase 進行業務分析，從而提高工作效率並減少數據誤解的風險。

4.4.2 Data Modeling 與 Metadata 的差別

在 Metabase 中，『Data Modeling』和 『Metadata（表元資料）』 雖然相關，但它們的功能和作用是不同的。以下是兩者的區別：

Data Modeling（資料建模）

Data Modeling 是指在 Metabase 中定義和組織資料表的方式，使其更適合分析和探索。其核心目的是優化資料的使用體驗。

清理和整理資料表：

隱藏不需要的欄位（如內部編碼或技術性欄位）。

將欄位重新命名為更易理解的名稱（如將 `cust_id` 改為 `Customer ID`）。

新增計算欄位：

定義基於現有資料的新欄位，例如「毛利 = 營收 - 成本」。

適合在圖形化介面中快速添加自訂指標。

設置資料關係：

定義資料表之間的關聯性（如外鍵）。

允許非技術用戶直接執行跨表分析。

分級結構：

將資料按層次分類（如地區 → 國家 → 城市），便於深入探索。

主要用途：

提供更直觀的資料表結構。

為非技術用戶簡化資料分析的過程。

提升資料一致性和可讀性。

Metadata（表元資料）

Metadata 指的是描述資料表和欄位的附加資訊。它的核心目的是提供上下文，幫助用戶理解資料內容與其意圖。

欄位描述：

為每個欄位添加描述，例如「`total_sales` 是每月的銷售總額」。

幫助用戶了解欄位的具體含義。

類型與格式設定：

指定欄位的類型（如數字、日期、文字）。

設定格式（如顯示為百分比或貨幣）。

數據敏感性標記：

標記敏感數據（如客戶個人資訊），用於權限控制或合規目的。

預設行為設定：

設定欄位的預設彙總方式（如總和、平均）。

定義預設排序方式（如日期按遞減排序）。

用途：

幫助分析人員快速理解資料結構與內容。

提供數據使用的上下文資訊。

避免因誤解資料而進行錯誤分析。

Data Modeling 與 Metadata 的差別

特點 | Data Modeling | Metadata
核心目標 | 優化資料表的結構，提升可用性 | 提供資料表和欄位的上下文資訊
主要作用 | - 整理欄位 - 添加計算欄位 - 定義關係 | - 解釋欄位的含義 - 標記欄位屬性
技術性 | 偏重資料結構調整，部分涉及邏輯運算 | 偏重資訊補充，幾乎不涉及邏輯變更
用戶群體 | 主要面向資料工程師或數據分析師 | 面向所有使用數據的角色，包括業務人員
對系統的影響 | 可能改變數據探索的方式與結果 | 不改變數據處理，只提供輔助資訊
操作位置 | 在資料庫關聯設定、建模畫面進行 | 在欄位設定介面填寫描述與屬性

如何在 Metabase 中結合使用

先進行 Data Modeling：清理並重新設計資料表結構，使其更直觀，提供計算欄位及定義資料關係。

補充 Metadata：為每個欄位添加描述和上下文資訊，讓資料使用者能清楚了解數據的來源和意圖。

這樣，Data Modeling 負責資料結構的『改造』，而 Metadata 負責為使用者提供資料的『背景資訊』，兩者相輔相成，共同提升資料探索的效率和準確性。

4.5 NBA 賽季資料整理

在前面的章節，筆者有推薦一個全世界公認最大的資料科學社群 Kaggle，接下來的實作案例，就會以其中的 NBA 比賽的詳細記錄Dataset 為標的，清楚說明完整的 BI 實作過程。

NBA 官網的統計資料(以 Curry 為例)

https://www.nba.com/stats/player/201939

NBA 賽制的基本說明：NBA 球季通常分為三個主要階段：

季前賽（Preseason）：通常在每年 『10 月初』開始，為期約兩至三週。季前賽的目的是讓球員適應比賽，調整狀態，並給教練們機會測試陣容。

常規賽（Regular Season）：通常在 『10 月中到 4 月中』進行，每支球隊會進行 82 場比賽（主客場各 41 場）。常規賽成績決定了球隊是否進入季後賽。

季後賽（Playoffs）：常規賽結束後的 『4 月中到 6 月』，是爭奪總冠軍的階段。東西兩區各有八支球隊晉級，透過淘汰賽角逐冠軍，最終在 6 月進行總決賽。

此外，NBA 每年 2 月左右還會舉行一場『明星週末』（All-Star Weekend），包括技巧挑戰賽、灌籃大賽、三分球大賽以及全明星賽等活動。

透過 Kaggle 取得NBA資料

可以到以下網址取得 csv 的相關資料

https://www.kaggle.com/datasets/nathanlauga/nba-games/data

官網上會有詳細的欄位說明

資料說明

這個資料集，包含5個 csv 檔案

序 | 名稱 | 說明
1 | games.csv | 從2004 賽季到上一次的所有比賽都會更新日期、球隊和一些詳細資訊，如積分等。
2 | games_details.csv | 比賽數據集的詳細資訊，給定比賽的球員的所有統計資訊
3 | players.csv | 球員詳細資訊（姓名）
4 | ranking.csv | 給定一天的 NBA 排名(本次分析沒有使用)
5 | teams.csv | NBA 所有球隊

Dataset | 欄位名稱 | 欄位說明
games.csv | GAME_DATE_EST | 比賽日期
| GAME_ID | 比賽ID
| GAME_STATUS_TEXT | 狀態
| HOME_TEAM_ID, | 主隊 ID
| VISITOR_TEAM_ID, | 客隊 ID
| SEASON | NBA 賽季(年)
| TEAM_ID_home | 主隊 ID
| PTS_home | 主隊得分
| FG_PCT_home | 主隊投籃命中率
| FT_PCT_home | 主隊的罰球百分比
| FG3_PCT_home | 主隊的三分球百分比
| AST_home | 主隊的助攻
| REB_home | 主隊籃板
| TEAM_ID_away | 客隊 ID
| PTS_away | 客隊得分
| FG_PCT_away | 客隊投籃命中率
| FT_PCT_away | 客隊的罰球百分比
| FG3_PCT_away | 客隊的三分球百分比
| AST_away | 客隊助攻
| REB_away | 客隊籃板球
| HOME_TEAM_WINS | 主隊勝否

Dataset | 欄位名稱 | 欄位說明
games_details | GAME_ID | 比賽 ID
| TEAM_ID | 球團的ID
| TEAM_ABBREVIATION | 球團的縮寫
| TEAM_CITY | 比賽所在的城市
| PLAYER_ID | 球員的ID
| PLAYER_NAME | 球員姓名
| NICKNAME | 昵稱
| START_POSITION | 先發位置
| COMMENT | 評論
| MIN | 上場分鐘數
| FGM | 射門得分
| FGA | 投籃出手數
| FG_PCT | 投籃命中率
| FG3M | 三分球命中
| FG3A | 三分球出手數
| FG3_PCT | 三分球命中率
| FTM | 罰球命中
| FTA | 罰球出手數
| FT_PCT | 罰球命中率
| OREB | 進攻籃板
| DREB | 防守籃板
| REB | 籃板球
| AST | 助攻
| STL | 抄截
| BLK | 封蓋(火鍋)
| TO | 失誤(Turnovers)
| PF | 個人犯規(Personnal Foul)
| PTS | 得分(Number of points scored by the player)
| PLUS_MINUS | 加-減

Dataset | 欄位名稱 | 欄位說明
players.csv | PLAYER_NAME | 球員姓名
| TEAM_ID | 球團的ID
| PLAYER_ID | 球員的ID
| SEASON | 球季(年)

Dataset | 欄位名稱 | 欄位說明
teams.csv | LEAGUE_ID | 聯賽 ID
| TEAM_ID | 球團的ID
| MIN_YEAR | 球隊進入NBA總冠軍的最低年份
| MAX_YEAR | 球隊進入NBA總冠軍的最大年份
| ABBREVIATION | 球團名稱的縮寫
| NICKNAME | 球團的昵稱
| YEARFOUNDED | 成立年份
| CITY | 球團所在城市
| ARENA | 球隊體育場
| ARENACAPACITY | 體育場的容量
| OWNER, | 球團的擁有者
| GENERALMANAGER | 總經理
| HEADCOACH | 主教練
| DLEAGUEAFFILIATION | 聯盟隸屬關係

有經驗的同學應該就能發現，這應該是從NBA官網爬蟲下來的資料，原始的資料應該是存在關聯資料庫中。接下來，我們就要把這些資料匯入到資料庫中，筆者是使用mariaDB存放相關的資料，同學也可以依個人慣用的資料庫自行處理。

之前有提過資料清洗，在下載的 csv 檔中，有發現許多異常資料(如下圖)，這些有可能是爬蟲不全或其他因素造成，這些異常資料的處理，也是整個大數據分析的一部分。

透過 API 取得NBA資料

除了透過 Kaggle取得已經整理好的 DataSet外，如果熟悉Python的程式開發，也可以參考下面的 blog 自行爬蟲取得更完整、即時的最新資料。這個當然是進階內容，本書就點到為止，請自行研究。

https://github.com/swar/nba_api

https://www.codegym.tech/blog/python-nba-api

資料整理

使用資料庫工具匯入 csv 檔

來源資料不一定完整，有可能資料不全，此時要先人工整理資料後，再重新匯入。

成功匯入資料到資料庫

或是使用 Metabase的csv上傳功能

我個人還是習慣自行處理資料上傳資料庫的作業，所以本功能僅供參考，請自行練習即可。

如果前述的功能無法正常上傳，可以用 ChatGPT 將csv 檔轉為 SQL 的 insert into 語法。

資料倉儲的核心步驟：ETL

資料倉儲 (Data Warehouse) 的核心步驟之一就是 ETL，這是一個將數據從多個來源提取 (Extract)、轉換 (Transform) 並載入 (Load) 到目標資料倉儲中的過程。ETL 是確保資料能夠在資料倉儲中整合和使用的關鍵步驟。

下面的語法主要有幾個目的：

是將所需的資料，整理成 View，方便操作。

因為原始資料是同一場比賽的2支隊伍記錄成同一筆 record，下面的語法則是拆成2筆資料(依隊伍)，這樣的整理比較好統計分析。

最終會將資料寫入和 View相同欄位的新增 Table，因為 Table 可以加入Index可以增加查詢的效能。

/*

全明細資料 View & Table (for compare performance)

*/

create view v_game_full_record AS

select

'home' gtype,

G.GAME_ID,

G.GAME_DATE_EST,

G.SEASON,

G.TEAM_ID_home TEAM_ID,T1.ABBREVIATION team_name,T1.NICKNAME team_nick,

D.PLAYER_ID,D.PLAYER_NAME,D.NICKNAME,

D.MIN, -- 上場分鐘數

D.FGM, -- 射門得分

D.FGA, -- 投籃出手數

D.FG_PCT, -- 投籃命中率

D.FG3M, -- 三分球命中

D.FG3A, -- 三分球出手數

D.FG3_PCT, -- 三分球命中率

D.FTM, -- 罰球命中

D.FTA, -- 罰球出手數

D.FT_PCT, -- 罰球命中率

D.OREB, -- 進攻籃板

D.DREB, -- 防守籃板

D.REB, -- 籃板球

D.AST, -- 助攻

D.STL, -- 抄截

D.BLK, -- 封蓋(火鍋)

D.`TO`, -- 失誤(Turnovers)

D.PF, -- 個人犯規(Personnal Foul)

D.PTS -- 得分(Number of points scored by the player)

from games G

left join games_details D on G.GAME_ID = D.GAME_ID

-- left join players p on D.PLAYER_ID = p.PLAYER_ID

left join teams T1 on T1.TEAM_ID = G.TEAM_ID_home -- 主隊

union all

select

'away' gtype,

G.GAME_ID,

G.GAME_DATE_EST,

G.SEASON,

G.TEAM_ID_away TEAM_ID,T2.ABBREVIATION team_name,T2.NICKNAME team_nick,

D.PLAYER_ID,D.PLAYER_NAME,D.NICKNAME,

D.MIN, -- 上場分鐘數

D.FGM, -- 射門得分

D.FGA, -- 投籃出手數

D.FG_PCT, -- 投籃命中率

D.FG3M, -- 三分球命中

D.FG3A, -- 三分球出手數

D.FG3_PCT, -- 三分球命中率

D.FTM, -- 罰球命中

D.FTA, -- 罰球出手數

D.FT_PCT, -- 罰球命中率

D.OREB, -- 進攻籃板

D.DREB, -- 防守籃板

D.REB, -- 籃板球

D.AST, -- 助攻

D.STL, -- 抄截

D.BLK, -- 封蓋(火鍋)

D.`TO`, -- 失誤(Turnovers)

D.PF, -- 個人犯規(Personnal Foul)

D.PTS -- 得分(Number of points scored by the player)

from games G

left join games_details D on G.GAME_ID = D.GAME_ID

left join teams T2 on T2.TEAM_ID = G.TEAM_ID_away -- 客隊

下面是參考 View 所建立的新 Table(欄位完全相同)

Table | 欄位名稱 | 欄位說明
game_full_record | Gtype | 主客場別
| GAME_ID | 比賽 ID
| GAME_DATE_EST | 比賽日期
| SEASON | 球季(年)
| TEAM_ID | 球團的ID
| team_name | 球團名稱的縮寫
| team_nick | 球團的昵稱
| PLAYER_ID | 球員的ID
| PLAYER_NAME | 球員姓名
| NICKNAME | 球員昵稱
| MIN | 上場分鐘數
| FGM | 射門得分
| FGA | 投籃出手數
| FG_PCT | 投籃命中率
| FG3M | 三分球命中
| FG3A | 三分球出手數
| FG3_PCT | 三分球命中率
| FTM | 罰球命中
| FTA | 罰球出手數
| FT_PCT | 罰球命中率
| OREB | 進攻籃板
| DREB | 防守籃板
| REB | 籃板球
| AST | 助攻
| STL | 抄截
| BLK | 封蓋(火鍋)
| TO | 失誤(Turnovers)
| PF | 個人犯規(Personnal Foul)
| PTS | 得分(Number of points scored by the player)

/*

全明細到 team 資料 View & Table (for compare performance)

*/

create view v_game_team_record AS

select

'home' gtype,

G.GAME_ID,

G.GAME_DATE_EST,

G.SEASON,

G.TEAM_ID_home TEAM_ID,

T1.ABBREVIATION team_name,

T1.NICKNAME team_nick,

-- team score

G.PTS_home PTS, -- 得分

G.FG_PCT_home FG_PCT, -- 投籃命中率

G.FT_PCT_home FT_PCT, -- 罰球百分比

G.FG3_PCT_home FG3_PCT, -- 三分球百分比

G.AST_home AST, -- 助攻

G.REB_home REB -- 籃板

from games G

left join teams T1 on T1.TEAM_ID = G.TEAM_ID_home -- 主隊

union all

select

'away' gtype,

G.GAME_ID,

G.GAME_DATE_EST,

G.SEASON,

G.TEAM_ID_away TEAM_ID,

T2.ABBREVIATION team_name,

T2.NICKNAME team_nick,

-- team score

G.PTS_away PTS, -- 得分

G.FG_PCT_away FG_PCT, -- 投籃命中率

G.FT_PCT_away FT_PCT, -- 罰球百分比

G.FG3_PCT_away FG3_PCT, -- 三分球百分比

G.AST_away AST, -- 助攻

G.REB_away REB -- 籃板

from games G

left join teams T2 on T2.TEAM_ID = G.TEAM_ID_away -- 客隊

下面是參考 View 所建立的新 Table(欄位完全相同)

Table | 欄位名稱 | 欄位說明
game_full_record | gtype | 主客場別
| GAME_ID | 比賽 ID
| GAME_DATE_EST | 比賽日期
| SEASON | 球季(年)
| TEAM_ID | 球團的ID
| team_name | 球團名稱的縮寫
| team_nick | 球團的昵稱
| PTS | 得分(Number of points scored by the player)
| FG_PCT | 投籃命中率
| FT_PCT | 罰球命中率
| FG3_PCT | 三分球命中率
| AST | 助攻
| REB | 籃板球

資料倉儲：依業務的需求整理如下

球隊的統計資料

Table | 欄位名稱 | 欄位說明
dw_team_statistics | TEAM_ID | 球團的ID
| team_nick | 球團的昵稱
| SEASON | 球季(年)
| YM | 年月
| PTS_SUM | 總得分
| AST_SUM | 助攻
| REB_SUM | 籃板球

create table dw_team_statistics (

TEAM_ID varchar(10),

team_nick varchar(20),

SEASON varchar(10),

YM varchar(10),

--

PTS_SUM int, -- 得分

AST_SUM int, -- 助攻

REB_SUM int, -- 籃板

primary key (TEAM_ID,YM)

)

insert into dw_team_statistics (

TEAM_ID,team_nick,

SEASON,YM,

PTS_SUM, AST_SUM, REB_SUM

)

select

TEAM_ID,team_nick,

SEASON,date_format(GAME_DATE_EST,"%Y%m") YM,

sum(PTS),sum(AST),sum(REB)

from game_team_record

where 1=1

group by TEAM_ID,team_nick,SEASON,YM

order by 1,3,4

球員的統計資料

Table | 欄位名稱 | 欄位說明
dw_player_statistics | TEAM_ID | 球團的ID
| team_nick | 球團的昵稱
| PLAYER_ID | 球員的ID
| PLAYER_NAME | 球員姓名
| SEASON | 球季(年)
| YM | 年月
| MIN_SUM | 上場分鐘數
| FGM_SUM | 射門得分
| FG3M_SUM | 三分球命中
| FG3A_SUM | 三分球出手數
| FTM_SUM | 罰球命中
| FTA_SUM | 罰球出手數
| OREB_SUM | 進攻籃板
| DREB_SUM | 防守籃板
| REB_SUM | 籃板球
| AST_SUM | 助攻
| STL_SUM | 抄截
| BLK_SUM | 封蓋(火鍋)
| TO_SUM | 失誤(Turnovers)
| PF_SUM | 個人犯規(Personnal Foul)
| PTS_SUM | 得分(Number of points scored by the player)

create table dw_player_statistics (

TEAM_ID varchar(10),

team_nick varchar(20),

PLAYER_ID varchar(10),

PLAYER_NAME varchar(100),

SEASON varchar(10),

YM varchar(6),

MIN_SUM decimal(20,4),

FGM_SUM int,

FGA_SUM int,

FG3M_SUM int,

FG3A_SUM int,

FTM_SUM int,

FTA_SUM int,

OREB_SUM int,

DREB_SUM int,

REB_SUM int,

AST_SUM int,

STL_SUM int,

BLK_SUM int,

TO_SUM int,

PF_SUM int,

PTS_SUM int,

primary key (TEAM_ID,PLAYER_ID,YM)

)

insert INTO dw_player_statistics (

team_id,team_nick,player_id,PLAYER_NAME,SEASON,YM,

MIN_SUM,

FGM_SUM,

FGA_SUM,

FG3M_SUM,

FG3A_SUM,

FTM_SUM,

FTA_SUM,

OREB_SUM,

DREB_SUM,

REB_SUM,

AST_SUM,

STL_SUM,

BLK_SUM,

TO_SUM,

PF_SUM,

PTS_SUM

)

select

team_id,team_nick,player_id,PLAYER_NAME,SEASON,

date_format(GAME_DATE_EST,"%Y%m") YM,

sum(MIN) MIN_SUM,

sum(FGM) FGM_SUM,

sum(FGA) FGA_SUM,

sum(FG3M) FG3M_SUM,

sum(FG3A) FG3A_SUM,

sum(FTM) FTM_SUM,

sum(FTA) FTA_SUM,

sum(OREB) OREB_SUM,

sum(DREB) DREB_SUM,

sum(REB) REB_SUM,

sum(AST) AST_SUM,

sum(STL) STL_SUM,

sum(BLK) BLK_SUM,

sum(`TO`) TO_SUM,

sum(PF) PF_SUM,

sum(PTS) PTS_SUM

from game_full_record

where 1=1

/* 部分資料有錯誤先不匯入

AND date_format ( GAME_DATE_EST , "%Y%m" ) <> '202111' AND date_format ( GAME_DATE_EST , "%Y%m" ) <> '202105' */

group by team_id,team_nick,player_id,PLAYER_NAME,SEASON,YM

order by 1,3,5,6

彙總所有相關的 Tables (含 View)

Table Name | 名稱 | 說明
games | 球賽資料 | 從 2004 賽季到上一次的所有比賽都會更新日期、球隊和一些詳細資訊，如積分等。
games_details | 球賽數據集的詳細資訊 | 比賽數據集的詳細資訊，給定比賽的球員的所有統計資訊
players | 球員資料 | 球員詳細資訊（姓名）
teams | 球隊資料 | NBA 所有球隊資訊
v_game_full_record | 球隊及球員的詳細記錄 | 由games及games_details的資料整合而得的 View，內容仍是明細的 row data
game_full_record | 同上 | 將 view 的資料寫入實際資料庫
v_game_team_record | 球隊的詳細記錄 | 由games的資料整合而得的 View，內容仍是明細的 row data
game_team_record | 同上 | 將 view 的資料寫入實際資料庫
dw_player_statistics | 球員的統計資料 | 彙總game_full_record
dw_team_statistics | 球隊的統計資料 | 彙總game_team_record

第五章

可視化報表

5.1 各式圖表介紹

5.2 基本圖表操作

5.3 樞紐分析(Pivot)

5.4 儀表板(DashBoard)

第5章 可視化報表

Metabase 是一個易於使用的 BI 工具，特別適合中小型企業、初創團隊，或是剛開始導入 BI 解決方案的公司，進行數據可視化。他的最大優勢是在於提供直觀的 UI讓非技術用戶可以輕鬆建立基本的可視化報表，但在更複雜的數據轉換和多層次分析方面的靈活性有限。

5.1 各式圖表介紹

Metabase 提供了多種視覺化圖表元素，適合不同的數據展示需求。

圖表類型

數據表 (Table)：展示原始數據，適合查看詳細記錄，常用於詳細數據審閱。

條形圖 (Bar Chart)：用於展示不同分類數據的比較，操作上需選擇 X 軸為分類項目，Y 軸為數值項目，並選擇分組類型。

折線圖 (Line Chart)：適合表達時間序列的數據變化。操作時需設定 X 軸為日期型欄位，Y 軸為數值欄位，能快速呈現隨時間變化的趨勢。

區域圖 (Area Chart)：與折線圖類似，但以面積強調累積變化，適合表示多個時間序列累積效果。

組合 Combo 圖

散點圖 (Scatter Plot)：適合表達兩個數值型變量間的關係。設定 X 軸和 Y 軸為數值型欄位，展示數據間的相關性。

瀑布圖

圓餅圖：適合顯示分類項目的比例分佈，通常用於顯示占比情況。操作上選擇分類欄位及其數量欄位。

漏斗圖

地圖 (Map)：Metabase 支持地理數據視覺化，需包含地理位置或地區欄位，例如國家或經緯度數據。適合展示區域分佈情況。

5.2 基本圖表操作

針對剛接觸 Metabase 的新手，接下來我們將逐步介紹基本圖表的操作，涵蓋基本圖表的建立、操作細節和注意事項，幫助您快速上手 Metabase。

登入及選擇資料來源

步驟：

登入 Metabase，進入工作介面。

點擊首頁上的『新的』>『提問』（New Question）按鈕。

在新問題界面中選擇數據來源（如資料庫或特定表）。

設定『彙總(Summarize) 』的『基礎量值』及『顯示欄位』，可以多選，也可以先不設定，等到下一個步驟進入『可視化（Visualization）』再設定。

如果有設定『彙總(Summarize) 』，接著『選擇分組的欄位』，可以選擇多個欄位。

確認無誤後，執行下方的『可視化(Visualization)』即可進入下一步驟。

注意事項：

確認所選的資料表格內的數據已更新，避免使用過時或不正確的資料。

以上的操作步驟，可以參考 『4.3 查詢三劍客』有詳細說明。

選擇圖表類型

進入『可視化（Visualization）』後會看到如下的介面，這是 Metabse的核心功能，此時畫面上有許多的功能按鈕，我們將逐一簡單說明。

如果在前一步驟沒有設定『彙總(Summarize) 』則會直接顯示資料內容(如下圖)，但上下方的功能鍵是相同的。Metabase的設計非常靈活，並不會很死的限制固定的操作流程，而是可以前後串接，感覺怎麼操作都可以完成工作，當然，最後用慣了以後，每個人都會形成一套自己的操作模式，這也是很多人喜歡Metatbase的原因。

[1] 提問設定區

篩選器：可以設定固定的查詢條件，過濾顯示的資料範圍。

匯總(Summarize)：

設定『匯總(Summarize)』及『分組欄位(Group By)』，這2個設定是可視化要呈現的『維度』及『顯示資料』，多做練習就會熟練其用途及顯示的樣式。

提問『編輯設定』區 (建議使用)

[2] 圖表設定區

可視化：可以選擇圖表的樣式

細項設定：選定圖表後，可以更細項的設定顯示的格式及內容。

圖形上的數字可以直接顯示，也可以動態滑鼠移動時顯示

[3] 顯示方式切換：在資料及圖表這2種顯示方式中切換。

[4] 其他設定

顯示資料最大筆數的上限

下載完整結果

獲取提醒警告(Get Alerts)：
在 Metabase 中，Get Alerts 是一種自動提醒功能，可以根據數據的變化來發送通知。使用者可以為特定的查詢（Questions）或儀表板設置警示條件，當數據達到設定的閾值或發生異常時，Metabase 會自動向指定的使用者或群組發送提醒。這功能主要有以下用途：

異常偵測
當某些指標出現異常變動時（例如銷售額急劇下降、網站流量驟增等），提醒功能可以立即通知相關人員，有助於及早發現並處理潛在問題。

自動報告更新
Metabase 可以在數據達到指定條件時，向使用者發送週期性的報告更新，像是每月的業務指標或每日的 KPI 變化，避免了手動查詢的繁瑣。

實時監控
適用於需要即時追蹤的關鍵業務指標，如用於監控庫存水平、營收目標達成狀況等。藉由自動提醒，管理者可以在需要時快速反應並做出決策。

支持多種通知方式
Get Alerts 支持透過電子郵件或 Slack 發送通知，並且可以設置通知頻率（如立即、每日、每週等），以符合不同業務需求的監控頻率。

這項功能提升了數據監控的自動化程度，使企業能更高效地管理關鍵業務指標，幫助使用者及時響應業務變化，從而更好地支持數據驅動的決策。

分享(Sharing)
在 Metabase 中，Sharing 功能允許使用者將儀表板或提問（報表）分享給外部使用者或嵌入到其他平台上，這對於提升數據的可視性和跨部門共享非常有幫助。這項功能主要分為兩種方式：

Public Link（公開連結）
Public Link 允許使用者生成一個唯一的連結，可以分享給公司外部或沒有登入 Metabase 帳號的使用者。公開連結通常適合短期、臨時的報表需求，例如快速提供特定報表給合作夥伴或非技術人員。這樣的連結可設定密碼或有效期限以保護數據隱私。

Embed（嵌入）
Embed 功能讓使用者將報表或儀表板嵌入至其他網站、應用程式或內部系統，方便在不同系統間共享。Metabase 提供了 iFrame 的嵌入代碼，並允許開啟特定的權限管理，確保不同使用者看到的數據能因人而異。例如，可以根據使用者群組角色設置過濾條件，讓嵌入的報表顯示不同的數據範圍。

調整圖表樣式

在『可視化』區選擇圖表的樣式後，接下來就要開始圖表的各項設定。首先，設定圖表的 X 軸與 Y 軸時，需要特別留意的操作細節有幾個關鍵要素，這能夠確保數據顯示清晰、符合邏輯且易於解讀。以下是一些在設置 X 軸和 Y 軸時的注意事項和最佳實踐：

選擇適合的欄位類型

X 軸：通常用於顯示時間、類別或其他維度型數據。這類數據有助於展示趨勢或區分不同的群組。

Y 軸：通常用於數值型數據，適合顯示可計算的量化指標，例如銷售額、數量、百分比等。

如果 X 軸選用了數值型數據，Y 軸最好也選擇數值型，以便圖表顯示數值之間的比例或趨勢。

資料類型的匹配

確認欄位的資料類型是否正確，尤其是在時間數據上，X 軸的時間格式是否設為日期型（Date）或時間型（Timestamp）等。

選擇類別型欄位作為 X 軸時，類別數量應適中，過多類別會導致圖表擁擠、難以解讀；可以考慮分組或合併小類別以提升清晰度。

軸標籤和刻度

標籤（Label）清晰易讀：軸標籤應該簡明扼要，最好反映出該軸的內容，例如「月份」或「銷售額」。過於冗長的標籤可能影響視覺效果。

刻度間距：適當調整刻度的間距，尤其在 X 軸的時間數據上。避免過多刻度，否則圖表可能顯得擁擠不堪且難以解讀。

選擇合適的圖表類型

Metabase 提供多種類型的圖表（如折線圖、柱狀圖、散點圖等），不同圖表類型適合不同的數據展示需求。

例如，折線圖適合用於顯示隨時間變化的趨勢，柱狀圖適合比較不同類別的值，而散點圖則適合觀察兩個數值之間的相關性。

數據聚合與彙總

設置 Y 軸時，可以根據需要對數據進行彙總操作，例如總和（Sum）、平均值（Average）、計數（Count）等。這些聚合操作能夠幫助呈現更具洞見的結果。

在 X 軸為時間時，可以進一步聚合數據至更高的時間粒度（如日、週、月），以便展示長期趨勢或減少波動。

數據過濾與篩選

在設定 X 軸和 Y 軸的同時，可以添加篩選條件以過濾不相關的數據，例如僅顯示特定日期範圍或某一類別下的數據。

過濾數據讓數據更具洞見並聚焦在使用者關注的範疇。

設置數值範圍（Axis Scale）

對於 Y 軸的數值範圍，可以選擇自動或自訂。一般來說，自動範圍會根據數據自動調整，但在某些情況下（例如進行多圖表對比），手動設定範圍可以保持一致性。

對於需要顯示趨勢的圖表，可以選擇 Log Scale（對數尺度）來強調不同數值層級之間的變化，尤其在數據跨度大的情況下。

色彩與標示

為不同的 X 軸類別設置不同顏色，能幫助區分數據並強化視覺效果。

可以為 Y 軸設置數值標示（如數值標籤），讓觀眾一目了然地看到每個數值的大小。尤其是當數據精度高或不同類別比較時，標示數值可以加強理解。

新增過濾器與篩選條件

步驟：

在界面上方找到“過濾器”按鈕，選擇要篩選的數據條件（例如，時間範圍、區域或產品類別）。

設定條件後，點擊應用（Apply）。

注意事項：過濾器設置不當可能導致結果偏差，確保條件符合分析需求，並定期調整篩選條件。

設定資料排序

步驟：

在設置中找到排序選項，可以根據需要進行升序或降序排列。

例如，可以將數據按日期排序或按銷售額排序。

注意事項：排序能幫助快速識別數據中的最高或最低值，但需注意不要因此失去數據的原始排序意圖。

儲存並嵌入到儀表板

完成圖表設置後，點擊『儲存』，將圖表儲存到特定的資料夾。

可以選擇將圖表直接嵌入到現有的儀表板，方便日後檢視。

5.3 樞紐分析(Pivot)

Metabase 的樞紐分析（Pivot）功能是一種強大的數據分析工具，可用於從不同維度和角度（如地區、時間和產品類別等）分析數據。透過 Pivot 功能，用戶可以將數據按指定的行和列進行重新排列，從而更直觀地觀察不同數據維度之間的關聯。這在需要進行多變量分析、交叉分析或尋找數據趨勢時特別有用。

資料來源選擇

設定及報表呈現

5.4 儀表板(DashBoard)

在 Metabase 中，Dashboard 是一個核心組件，扮演了數據視覺化和快速資訊呈現的重要角色。它是一個用來整合多個數據視覺化報表的頁面，允許使用者同時觀察不同資料來源、不同範疇的資訊。透過這種聚合視角，可以更清晰地觀察數據的全貌。

每個 Dashboard 上的圖表都可以根據需求選擇適合的視覺化方式，如折線圖、柱狀圖、圓餅圖等，以更佳的呈現方式來表達數據間的趨勢或關聯性。

常用功能介紹

選項卡：Dashboard 可以設定多張選項卡，可以適當的區分不同的資料類型

右方可以選擇圖表來源：之前設定的提問、模組都是可以當作來源元件使用。

圖表區右上方選單：

移至選項卡：可以將當前的圖表，移到指定的選項卡

視覺化畫面：

可以進入可視化的編輯頁面，重新設定相關的視覺化設定，相關操作已於前說明，此處不再贅述。

點擊(Click) 行為

在 Metabase 的 Dashboard 中，對於圖表設定「點擊(Click) 行為」的操作，可以讓使用者點擊圖表中的資料時觸發特定的動作，以提升交互性。詳細的說明將在稍後詳細說明。

替換

將當前的圖表更換成新的指定圖表

複製：

複製按鈕可以生成選中圖表的副本，這對於想要基於現有圖表進行微調或進行多個類似分析的情境特別實用，免去重複創建相似圖表的麻煩。

添加系列

刪除：

此按鈕允許從 Dashboard 中刪除不需要的圖表，讓視覺更為簡潔。需要注意的是，這只是將圖表從 Dashboard 上移除，並不會刪除圖表原始數據。

關於點擊(Click) 行為的詳細說明

無動作 (No action)

預設設定下，點擊圖表中的資料點不會有任何反應。這適用於僅需顯示數據，而無需進一步交互的圖表。

查看詳細資訊 (View details)

選擇此選項後，使用者可以點擊圖表中的特定資料點，進一步查看該資料點的詳細資訊。這個功能類似於「放大鏡」效果，可查看更多數據細節，例如數據的具體值、日期、來源等，非常適合需要深入理解單一數據點的情境。

篩選 Dashboard (Filter this dashboard)

此設定允許使用者點擊圖表中的資料後，根據該資料點的特定屬性（例如日期、分類等）自動篩選 Dashboard。這種互動可以動態改變 Dashboard 上其他圖表的顯示內容，以便針對某一特定維度進行深度分析。例如，點擊某一地區的銷售數據後，Dashboard 會自動篩選其他圖表，以僅顯示該地區的相關資料。

跳轉至其他 Dashboard (Go to another dashboard)

使用者可以配置點擊行為以跳轉至另一個 Dashboard，方便在多個 Dashboard 之間導覽。這對於擁有多層次分析需求的報表架構特別有用，例如總覽 Dashboard 點擊後跳轉至特定部門或產品的詳細 Dashboard，能夠讓使用者快速切換到相關資訊頁面。

跳轉至詳細問題頁面 (Go to a specific question)

若想讓使用者深入探索某一圖表的數據細節，可以設定點擊行為以跳轉至「詳細問題頁面」，顯示該圖表的完整查詢結果。在這個頁面上，使用者還可以使用額外篩選、排序等功能，對數據進行更深入的自訂分析。

跳轉至自定義 URL (Go to a custom URL)

此選項允許使用者點擊圖表中的資料點後，跳轉至外部網址（例如公司內部系統、文件頁面或第三方工具）。在設置時，可以動態生成 URL，將點擊的數據值作為 URL 的參數傳遞。這樣的設計能有效整合多個系統資訊，為使用者提供更全面的分析情境。

通過設置「點擊行為」，使用者可以根據需求打造具互動性、跨頁整合的 Dashboard，使分析體驗更具流暢性及實用性。

Dashboard上方功能選單

關閉側邊欄：關閉右側的側邊欄選項

添加標題或文本：

可以在任意位置新增標題及說明描述。

添加連結卡片：就是一個超連結，像連到另一個網頁一樣。

添加部分：預設的 Dashboard就像是一張白紙，我們可以自行決定如何安排畫面的所有位置、大小及細節。但是如果你希望有一個經過設計好的範本可以參考，這個功能就是你的救星。

選擇第三種 Layout 樣式

新增篩選：可讓用戶可以根據不同維度來篩選數據，從而展示特定條件下的分析結果。

切換寬度：

可以切換顯示 Dashboard 的寬度為全螢幕或左右會固定留白。

以下是 Dashboard 的操作步驟：

建立 Dashboard：

點擊「+ New」→「New Dashboard」，為 Dashboard 命名並添加描述以方便管理。

添加問題 (Question)：

點擊「Add a Question」，選擇或建立新的問題卡片。也可以從已建立的問題列表中選擇問題。請參考 4.3 節的說明。

配置卡片布局：

拖曳卡片調整位置及大小，讓數據視覺化更清晰易讀，將關聯性強的卡片集中在一起，以便於數據的對比與分析。

添加篩選器 (Filter)：

點擊「Add a Filter」，設置篩選條件（如日期、地區、使用者等），並應用到相關卡片上。

設置文字卡片 (Text Card)：

添加說明文字或標題，幫助用戶理解數據背景。

共享 Dashboard：

使用「分享」功能設定可見範圍，控制訪問權限。

第六章

Metabase 案例實作

6.1 球隊的統計數據

6.2 球員的統計數據

6.3 如何應用於商業分析

第6章 Metabase 案例實作

本章將帶您實作資料分析的可視化，透過真實數據探索 NBA 球隊與球員的歷年紀錄。我們將利用 Metabase 對這些豐富的數據進行分析，從中發掘有趣的趨勢與隱藏的故事，並透過圖表呈現。隨著 NBA 比賽節奏、戰術和球員風格的變遷，賽季數據不僅展示了得分、助攻、籃板等基本數據，更蘊含著聯盟歷年來的戰術變革與球隊表現的多樣性。

在這章節中，您將學習如何透過篩選、分組、數據聚合等操作，從海量的 NBA 數據中提取有用資訊，並使用 Metabase 將分析結果可視化呈現。無論您是新手或有經驗的數據分析師，本章將幫助您掌握 Metabase 的基本操作，並提升資料探索與分析的能力，使數據不再只是冷冰冰的數字，而是生動地講述著賽場上的故事。

除了基本的數據分析技巧，本章還將深入介紹如何利用 Metabase 的高階功能來探索更具洞察力的指標，例如球隊與球員在不同賽季的表現變化、得分和助攻效率的趨勢，甚至是主場與客場表現的比較。我們會逐步引導您設定自定義的篩選條件，並結合 Metabase 的動態儀表板功能，讓分析結果即時更新，便於進行多維度的數據探索。

透過這些實作，您將了解到如何將 NBA 的複雜數據轉化為易於理解的視覺化圖表，不僅能揭示球隊的歷史變遷，也能看見單一球員在成長過程中的轉折點。這種將數據轉化為可視化故事的技巧不僅適用於體育數據分析，亦可廣泛應用於各行各業，幫助您做出更有依據的商業決策。

來源：NBA 官網

6.1 針對球隊的統計數據及圖表

在這一節中，我們將深入探討如何使用 Metabase BI 工具分析 NBA 球隊的統計數據，並透過數個實際案例，演示如何建立與解讀不同的統計圖表及趨勢分析。隨著數據驅動的決策成為運動管理的重要一環，球隊管理層、教練和分析師均希望能更清楚地理解球員的表現和球隊的發展方向。Metabase 作為一款功能強大且直觀的 BI 工具，為這些需求提供了解決方案。

本節將聚焦於使用 Metabase 將 NBA 球隊數據進行視覺化，透過案例展示如何建立包含球員得分、助攻、籃板等數據的關鍵指標儀表板。我們還將演示如何設定趨勢圖，追蹤球隊在整個賽季中的表現變化，從而讓管理層更直觀地了解球隊的優勢與弱點。此外，我們也會探討一些進階的分析方法，例如如何根據比賽數據預測勝率或分析對戰球隊的關鍵數據點，以提供決策參考。

在這些案例中，讀者將學習到如何快速上手並有效應用 Metabase，無論是生成即時數據報告、設置警示通知，或是利用分群與過濾功能深入剖析特定情境。我們的目標是讓每位讀者都能夠輕鬆應用 Metabase 建立符合自身需求的視覺化圖表，實現以數據驅動的戰術決策。

NBA 球隊歷年年度總得分趨勢圖

我們直接使用 dw_team_statistics 這個資料倉儲表當作資料來源

並設定 Summary 及 Group By

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | dw_team_statistics | 球隊統計倉儲資料
2 | 彙總(Summary) | Sum of Pts_sum | 得分總計
3 | Group By | Team_Nick + Season | 球隊名 + 球季

Metabase 會自動帶入預設的建議設定，但是仍可依需求調整。

展示結果：『折線圖』為例

切換為 區域圖

切換為 Pivot 樞紐分析

NBA 20xx 賽季指定球隊的場均數據

Lakers 2007年度各月的得分總計及趨勢

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | dw_team_statistics | 球隊統計倉儲資料
2 | 彙總(Summary) | Sum of Pts_sum | 月得分
3 | Group By | YM | 年月

Lakers 2007年度各月的平均得分及趨勢

如果想查詢各月的平均得分，就不能使用 dw_team_statistics (因為資料倉儲計算時已經依月加總)，要改使用 Game_Team_Record 這個 Table 計算取得。

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | game_team_record | 球隊每場比賽統計資料
2 | 彙總(Summary) | average of Pts | 月平均得分
3 | Group By | game_date_est：by month | 由比賽日取得所屬年月

NBA 20xx 賽季年度籃板前10名隊團

NBA 2007 年各球團籃板排行榜

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | dw_team_statistics | 球隊統計倉儲資料
2 | 彙總(Summary) | Sum of Reb_sum | 月籃板數
3 | Group By | Team_nick | 球隊名

排行的小技巧：上圖有說明喔 @_@

NBA 球隊年度表現全方位分析 – Dashboard

2021 Cavaliers 騎士隊三大指標月均值 (字卡)

月平均得分

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | game_team_record | 球隊每場比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | average of Pts | 月平均得分
4 | Group By | Team Nick game_date_est：by month | 球隊名稱 由比賽日取得所屬年月

月平均籃板數

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | game_team_record | 球隊每場比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | average of Reb | 月平均籃板
4 | Group By | Team Nick game_date_est：by month | 球隊名稱 由比賽日取得所屬年月

月平均助攻數

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | game_team_record | 球隊每場比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | average of Ast | 月平均助攻
4 | Group By | Team Nick game_date_est：by month | 球隊名稱 由比賽日取得所屬年月

2021 球隊三大指標月均值趨勢

彙總欄位取多值

Y軸多值

Metabase 已設定的相關『提問』列表

Dashboard 設定查詢條件

成果展示

可以繼續增加提問擴充

可以切換查看不同球隊的表現數據

6.2 針對球員的統計數據及圖表

在這一節中，我們將重點關注如何利用 Metabase 分析 NBA 球員的統計數據，以多個實際案例展示如何從數據中挖掘出更深層次的洞見。球員的表現往往決定了球隊的戰績，因此，深入了解每位球員的數據指標，對教練、分析師以及管理層來說都是不可或缺的。

首先，我們將演示如何建立個人數據儀表板，包括得分、投籃命中率、助攻、籃板、失誤等關鍵指標，藉此分析球員的綜合表現。接著，我們會進一步探索如何在 Metabase 中設定趨勢圖，追蹤球員的表現隨著賽季推進的變化情況。這些趨勢圖不僅能幫助教練識別球員的進步與退步，還能協助調整訓練計劃和比賽策略。

透過這些案例，我們的目標是讓讀者熟悉並能自如操作 Metabase，打造適合自己需求的視覺化圖表，以便在數據分析中迅速找到有價值的資訊，為球隊的決策提供有力的數據支援。

NBA 2021 年度前10大得分王

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | dw_player_statistics | 球員比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | sum of Pts_sum | 總得分
4 | Group By | Player_name | 球員
5 | Sort | sum of Pts_sum | 排序
6 | 行限制 | 10 | 顯示前10名

新增提問，並設定如下

圓餅圖

散佈圖

可以視資料的類型，選擇適合的圖表。

NBA 2021 年度前10大籃板王

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | dw_player_statistics | 球員比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | sum of Reb_sum | 總籃板數
4 | Group By | Player_name | 球員
5 | Sort | sum of Reb_sum | 排序
6 | 行限制 | 10 | 顯示前10名

設定提問

顯示結果

NBA 2021 球員年度各月份的得分趨勢

2021 LeBron James >> Cavaliers 騎士隊

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | dw_player_statistics | 球員比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | sum of Pts_Ast | 總助攻數
4 | Group By | Player_name | 球員
5 | Sort | sum of Ast_sum | 排序
6 | 行限制 | 10 | 顯示前10名

設定問題

展示

NBA 2021 球員表現全方位分析–Dashboard

2021 Cavaliers (騎士隊) LeBron James三大指標月均值(字卡)

月平均得分

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | game_full_record | 球隊的出賽球員每場比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | average of Pts | 月平均得分
4 | Group By | Team Nick game_date_est：by month | 球隊名稱 由比賽日取得所屬年月

月平均籃板數

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | game_full_record | 球隊的出賽球員每場比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | average of Reb | 月平均籃板
4 | Group By | Team Nick game_date_est：by month | 球隊名稱 由比賽日取得所屬年月

月平均助攻數

序 | 設定主題 | 內容 | 說明
1 | 資料來源 | game_full_record | 球隊的出賽球員每場比賽統計資料
2 | 篩選器 | Season=2021 | 2021球季
3 | 彙總(Summary) | average of Ast | 月平均助攻
4 | Group By | Team Nick game_date_est：by month | 球隊名稱 由比賽日取得所屬年月

2021 球員三大指標月均值趨勢

彙總欄位取多值

Y軸多值

Metabase 已設定的相關『提問』列表

Dashboard 設定查詢條件

補充說明：這張 Dashboard 的查詢效能明顯變慢，因為他是從 row data (原始資料) 計算取得，並沒有用到資料倉儲的統計表。如果想要提升效能，再整理一個球員月份的平均統計表即可。

成果展示

LeBron James 的戰績

可以繼續增加提問擴充

可以切換查看不同球員的表現數據

切換查看 Curry 的戰績

6.3 如何應用於商業分析

在熟悉 NBA 球隊與球員數據分析之後，這些方法其實也可以靈活地應用到商業領域的數據分析中。球隊與球員分析所揭示的模式，與企業中各類業務單位和員工績效分析有許多相似之處。在本節接下來的內容中，我們將逐步說明如何將這些體系轉化為商業分析的實際應用，讓讀者能夠在自己的業務中複製這些成功的方法。

首先，就像 NBA 球隊監控球員的各項數據來優化戰術，企業也可以針對各業務部門的核心指標（KPI）建立儀表板，持續追蹤和比較其表現。例如，銷售團隊可以像籃球數據一樣，追蹤每位銷售人員的成交率、平均成交時間和客戶維護情況，並通過趨勢分析掌握每位業務員的長期表現。這種可視化工具幫助企業領導層快速識別高績效員工，並針對需要支持的員工調整資源。

接下來，我們會探討如何將球員表現的深度分析轉化為員工績效的精細化管理。利用 Metabase 的分群和篩選功能，企業可以根據員工的工作角色或地區進行分類分析，以找出表現穩定的員工或類似特質的優秀團隊。這一技術還能協助在招募和人員配置上做出更明智的決策。

最後，本節將介紹如何利用 Metabase 的預測功能進行業務趨勢的分析和風險預測，例如根據不同產品線的表現預測季度營收或預測客戶流失風險。通過這些應用，企業領導者可以更加精確地做出戰略決策，並及時應對市場變化。

總之，NBA 球隊數據分析的理念與技術在商業應用中有著廣泛的前景，無論是銷售、客服，還是人力資源管理，都可以從這些分析方法中獲益。這章節不僅希望讓讀者掌握技術工具的操作，更希望啟發讀者利用數據驅動的方法提升整體業務表現。

接下來，我們將要配合使用『Tableau 測試資料集』的範例，來實作相關可視化分析報表。

Tableau 是一款功能強大的商業智慧 (Business Intelligence, BI) 和資料可視化軟體，專門用來幫助用戶分析和呈現資料。Tableau 以其直觀的拖放操作和豐富的圖表種類而聞名，廣泛應用於各行各業的數據分析和決策支持。

下載資料集

Tableau 提供豐富的官方教學影片和操作指南，從基礎入門到高階技巧應有盡有。可以當作很好的參考範例學習，多看多學是邁入資料分析大門的必經之路。

https://public.tableau.com/app/learn/sample-data

匯入 MariaDB 資料庫

建立 MariaDB 的資料表

create table tableau_superstore (

RowID INT NOT null,

OrderID VARCHAR(20),

OrderDate date,

ShipDate date,

ShipMode VARCHAR(20),

CustomerID VARCHAR(20),

CustomerName VARCHAR(60),

Segment VARCHAR(20),

Country VARCHAR(20),

City VARCHAR(20),

State VARCHAR(20),

PostalCode varchar(10),

Region VARCHAR(20),

ProductID VARCHAR(20),

Category VARCHAR(20),

Sub_Category VARCHAR(20),

ProductName VARCHAR(100),

Sales decimal(12,4),

Quantity int,

Discount decimal(6,2),

Profit decimal(12,4),

primary key (RowID)

)

匯入資料：超市的銷售資料

包含有關產品、銷售和利潤的資訊，您可以使用這些資訊來確定此虛構公司中需要改進的關鍵領域。

分析報表

提問設計

組合圖表

樞紐分析

接下來，我們用漏斗圖來展示企業常用的資料分析，Metabase 的漏斗圖是一種重要的數據可視化工具，用於展示和分析多階段流程中的轉化率和數據流失情況。

常見的應用場景包括：

用戶行為分析

追踪用戶在產品中不同階段的行為，例如註冊、首次登錄、購物車添加到下單的完成率。

銷售流程分析

監控銷售漏斗中不同階段的轉化，例如潛在客戶到有效線索，再到成為付費客戶的過程。

市場營銷活動分析

衡量廣告點擊、登錄頁轉化、電子郵件點擊率等的效率。

招聘流程分析

從收到簡歷到面試邀約，再到錄取通知的轉化。

範例資料內容：電商網站用戶行為分析

資料表結構：user_behavior_analysis

日期 | 用戶 ID | 事件類型 | 事件描述
2024-11-01 | U001 | 登入Landing Page |
2024-11-01 | U001 | 註冊完成 | 無
2024-11-01 | U001 | 瀏覽商品頁 |
2024-11-01 | U001 | 添加購物車 | 商品A
2024-11-01 | U001 | 下單成功 | 訂單ID：O001
2024-11-01 | U002 | 登入Landing Page |
2024-11-02 | U002 | 註冊完成 | 無
2024-11-02 | U002 | 添加購物車 | 商品B
2024-11-03 | U002 | 放棄購物車 | 商品B
2024-11-05 | U003 | 登入Landing Page |
2024-11-06 | U003 | 註冊完成 | 無
2024-11-04 | U004 | 登入Landing Page |
2024-11-05 | U005 | 登入Landing Page |
2024-11-06 | U006 | 登入Landing Page |
2024-11-06 | U006 | 瀏覽商品頁 |

分析漏斗步驟：

登入Landing Page > 用戶註冊完成 > 瀏覽商品頁 > 添加商品至購物車 > 完成下單

使用漏斗圖視覺化結果，顯示每個步驟的用戶數及轉化率

設定及結果展示

第七章

Metabase 進階設定

7.1 表元數據

7.2 帳號管理

7.3 權限管理

7.4如何擴充連接到Oracle資料庫?

7.5 Metabase SQL 編輯器的使用技巧

7.6自動化報表和定期報告生成

7.7整合台灣Map 的使用

第7章 Metabase 進階設定

7.1 表元數據(Table Metadata)

在 Metabase 中，「系統管理員」功能下的「表元數據」是關於資料庫中各個表格的結構化資訊與詳細數據屬性，這些資料在 Metabase 內部被稱為「元數據」。它主要包含了資料庫中每個表格和字段的描述、欄位類型（如數值、文字、日期等）、欄位的分類方式、資料格式等資訊。為 Metabase 系統的運作提供了基礎支援，使資料能夠在可視化、查詢、篩選等操作中發揮最大效用，並提升了系統的易用性和資料準確性。

表元數據的用途

數據分類與篩選：表元數據幫助系統管理員將不同類型的資料分類，例如將「日期」類型的欄位設為時間維度，或將「地區」欄位標記為地理資訊。這樣的分類讓 Metabase 更容易理解資料的結構，進而支援篩選器和可視化圖表的自動推薦。

資料一致性與準確性：透過定義與管理表元數據，系統管理員可以確保數據在 Metabase 中正確顯示。比如說，若欄位數據類型定義錯誤，Metabase 可能無法正常產生圖表或進行篩選。

增強使用者體驗：元數據允許管理員為每個欄位添加描述，方便非技術用戶理解每個欄位的含義。這樣，當使用者查詢數據或製作報表時，可以根據欄位描述更清楚地理解和使用數據。

便於資料探索與分析：在元數據中配置欄位類型和篩選條件，Metabase 可以自動生成建議的篩選器和圖表，幫助使用者更快速地從數據中獲取洞察。

特別是地圖報表，城市欄位及經緯度一定要正確設定，才能正確的顯示。

設定並使用『篩選器』

可以在設定篩選器的地方，設定時的最上方，查看到之前設定的篩選條件。

設定並使用『量值』

7.2 帳號管理(People)

在 Metabase 中，帳號和群組設定主要用於管理使用者的存取權限，讓不同層級的使用者擁有適合他們需求的功能及資料存取權限。這種分層管理有助於保護數據安全、提升系統運營效率，並提供個性化的使用體驗。

帳號管理：

帳號設定包含了使用者的基本資訊和群組角色分配，以下是主要的設定細節：

基本資訊：每個帳號包含使用者名稱、電子郵件、密碼等基本資訊，確保能夠辨識及聯繫到使用者。

群組角色分配：帳號會被分配至不同的群組或群組角色，這些群組角色決定了使用者的權限範疇。常見的群組角色包括：

系統管理員（Adminstrators）：擁有最高權限，可以管理所有資料庫、數據表、設置和使用者帳號。

一般使用者（All User）：可以存取授權的儀表板和報表，適合需要日常參考數據的人員。

讀取使用者（Read-only User）：僅限於查看數據，無法執行查詢或修改數據，適合只需要查看特定數據的使用者。

所屬群組

Metabase 透過群組來靈活管理不同類型的使用者存取權限，群組設定讓管理員能夠更高效地分配權限並進行維護。主要的群組管理功能如下：

群組建立與編輯

管理員可以創建不同的群組並為其命名，例如「分析師」、「營運團隊」、「銷售團隊」等。這些群組可以根據組織需求進行調整。

群組設定的最佳實踐

清晰的群組劃分：建立清晰、功能導向的群組，例如根據部門或任務設立群組，以確保不同使用者能清楚理解自己的存取權限。

權限定期審核：定期檢查群組成員和權限設置，尤其是在組織結構發生變動時，確保數據存取權限符合最新需求。

7.3 權限管理(Permissions)

在 Metabase 中，權限設計主要是針對使用者的群組角色管理與資料存取控制，讓管理者能靈活地控制誰可以查看、編輯或管理資料，進而確保資料安全和可控性。Metabase 的權限系統是基於『群組角色 (Roles)』與『集合 (Collections)』進行設計的。以下我將詳細說明 Metabase 的權限設計概念與操作流程。

7.3.1 Metabase 權限設計的核心概念

使用者 (Users)：

Metabase 中的使用者是指具有帳號並登入系統的人員。

每個使用者都會被指派至少一個群組角色。

群組角色 (Roles)：

群組角色是 Metabase 中的權限設定核心。使用者透過群組角色來被賦予不同的權限。

Metabase 預設提供三種群組角色：

Administrator：系統管理員，擁有全域管理權限，可以管理所有使用者、資料庫、集合等設定。

普通使用者 (Normal User)：一般使用者，只能查看自己有權限訪問的資料庫和集合。

公開使用者 (Public User)：用於公開分享的儀表板或問題 (Question)，適合無需登入即可訪問的場景。

可以根據需求創建自訂群組角色，用於細分不同部門或團隊的權限。

3. 資料庫權限 (Data Permissions)：

資料庫權限控制使用者對資料庫中表格與欄位的訪問權限。

權限等級：

無權限 (No Access)：無法訪問該資料庫或表格。

僅查看 (View Only)：只能查詢與檢視資料。

編輯 (Curate)：可以建立或編輯問題 (Questions) 和儀表板 (Dashboards)。

4. 集合 (Collections)：

集合是用來組織問題、儀表板與資料模型的文件夾。

集合權限設定決定了哪些使用者或群組角色可以存取、編輯或管理集合中的內容。

7.3.2 操作流程：如何設定 Metabase 權限

設定使用者與群組角色

新增使用者：

進入 Admin Settings → People 頁面。

點選 Invite User，輸入使用者的電子郵件，並指派初始群組角色。

管理群組角色：

在 Admin Settings → Permissions → Data Permissions 中，可以為每個群組角色設定不同資料庫的訪問權限。

可以新增自訂群組角色，例如「行銷團隊」或「財務部門」，以更精細地控制權限。

設定資料庫權限

設定群組角色的資料庫訪問權限：

進入 Admin Settings → Permissions → Data Permissions。

選擇要設定的資料庫，並為不同群組角色分配權限：

No Access：完全無法訪問該資料庫。

View Only：可以查詢與查看資料，但無法修改。

Curate：允許編輯資料模型與創建問題。

欄位層級的權限設定：

可以進一步為特定表格或欄位設置權限，隱藏敏感數據。

設定集合權限

管理集合：

在 Admin Settings → Permissions → Collection Permissions 中，選擇集合並為群組角色指派權限：

No Access：無法查看該集合。

View Only：只能查看集合中的內容，無法編輯。

Edit：可以新增或編輯集合中的內容。

Admin：擁有集合的完全控制權，可以刪除集合。

自訂集合：

可以為不同的部門或專案創建自訂集合，例如「財務報表」、「行銷數據」，並設置專屬的權限。

測試權限配置

模擬使用者視角：

可以利用 Admin Settings → People 中的 View as User 功能，模擬特定使用者的視角，確認權限配置是否正確。

檢查錯誤與調整：

如果使用者無法訪問預期的內容，需檢查資料庫權限與集合權限是否正確配置。

筆者個人習慣將 Metabase 整合到自行開發的EIS自有系統，所以權限大多是由EIS系統的權限模組控制。實際作法會在下一章詳細討論，至於您的企業要採用哪種方式都無妨，只要內部討論出一個好用、好整合的可行方案即可。

7.4 如何擴充連接到Oracle資料庫?

要在 Metabase 中連接 Oracle 資料庫，您需要進行以下幾個步驟。Oracle 連接器在 Metabase 並不是預設內建的，因此需要一些額外設定。

安裝 Oracle JDBC 驅動程式

下載 Oracle JDBC 驅動程式

前往 Oracle 官方網站下載 [Oracle JDBC 驅動程式]

(https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html)

選擇版本，例如：`ojdbc8.jar`。

將驅動程式放置到 Metabase plugins 資料夾

重啟 Metabase

在 Metabase 中配置 Oracle 資料庫

重啟後，進入 Metabase 的設定介面來配置 Oracle 資料庫連接。

登入 Metabase，點擊右上角設定 > **管理資料庫** > **新增資料庫**。

選擇 **Oracle** 作為資料庫類型。

填寫以下資料：

名稱：自訂一個名稱。

主機 (Host)：Oracle 資料庫的 IP 位址或主機名稱。

端口 (Port)：預設為 `1521`。

資料庫名稱 (Database Name)：Oracle 的 SID 或 Service Name。

使用者名稱 (Username)：Oracle 使用者名稱。

密碼 (Password)：Oracle 使用者密碼。

連接字串 (Connection String, 可選)：如果需要使用自訂連接字串，可以填寫，例如：jdbc:oracle:thin:@//<host>:<port>/<service_name>

點擊『儲存』。

測試連接

完成設定後，點擊 『測試連接』 按鈕。如果一切正常，Metabase 將顯示連接成功的訊息，並且可以開始使用 Oracle 資料庫進行查詢與視覺化分析。

常見問題排查

無法找到驅動程式：

請確認 `ojdbc8.jar` 驅動程式已放置在正確的 `plugins` 資料夾中，並且 Metabase 已經重啟。

可以檢查 Metabase 啟動日誌中是否載入了 Oracle JDBC 驅動程式。

連接失敗，顯示 TNS 錯誤：

請檢查連接字串格式是否正確。

確認 Oracle 資料庫的服務名稱、主機 IP 和端口是否正確。

確認防火牆是否允許 Metabase 主機訪問 Oracle 端口（預設為 `1521`）。

ORA-28040 錯誤：無法連接資料庫，因為不支援加密協定：

這通常是由於 Oracle 資料庫設定了加密協定，與 JDBC 驅動程式版本不匹配。

可以嘗試使用較新的 JDBC 驅動程式版本，或者在 Oracle 資料庫端調整加密協定設定。

7.5 Metabase SQL 編輯器的使用技巧

在 Metabase 中，SQL 編輯器是一個強大而靈活的工具，讓有 SQL 基礎的使用者能夠編寫自訂查詢，實現更加複雜的數據分析和報表。

執行一般報表的基本操作(過濾及查詢)

以下是一些在 Metabase SQL 編輯器中能提升效率的使用技巧：

使用變數進行動態查詢

Metabase 支援在 SQL 查詢中添加變數，以實現動態篩選。這樣，使用者可以在執行查詢前輸入或選擇變數值，從而生成不同條件的查詢結果。

基礎變數：使用 『{{變數名}}』來設置變數。例如，『WHERE date = {{date}}』允許在查詢時指定不同的日期。

選擇器和日期範圍：可以使用下拉選單、日期範圍等 UI 元素來設置變數，讓查詢更加靈活。例如：

SELECT * FROM sales

WHERE region = {{region}} AND date BETWEEN {{start_date}} AND {{end_date}}

預設值：可以在變數中設置預設值。這樣即便使用者沒有指定參數，查詢也會有默認行為。例如：『{{region="East"}}』。

結合 Common Table Expressions (CTEs) 提高可讀性

使用 CTE 可以將查詢分段，使得複雜查詢更加清晰可讀。CTE 是以 『WITH』開頭的子查詢，可以分層處理數據，適合分步驟處理多層查詢需求。

WITH monthly_sales AS (

SELECT product_id, SUM(amount) AS total_sales,

DATE_TRUNC('month', sale_date) AS month

FROM sales

GROUP BY product_id, month

)

SELECT product_id, AVG(total_sales) AS avg_monthly_sales

FROM monthly_sales

GROUP BY product_id

利用窗口函數進行進階分析

窗口函數（Window Functions）是分析的利器，適合處理累計總和、移動平均值、排名等需求。

--累計總和

SELECT sale_date, amount,

SUM(amount) OVER (ORDER BY sale_date) AS cumulative_sales

FROM sales

--分區排名

SELECT product_id, amount,

RANK() OVER (PARTITION BY category ORDER BY amount DESC) AS rank

FROM sales

使用 CASE 語句進行條件篩選

CASE 語句可以用來根據條件生成不同的值，這在創建自訂欄位或進行分類時特別有用。

SELECT product_id,

CASE

WHEN amount > 100 THEN 'High'

WHEN amount BETWEEN 50 AND 100 THEN 'Medium'

ELSE 'Low'

END AS sales_category

FROM sales

結合 SQL 編輯器中的聚合函數

Metabase 的 SQL 編輯器支援標準的 SQL 聚合函數（如 SUM、AVG、MAX、MIN）。在查詢中使用聚合函數，可以直接在查詢層面進行計算。

SELECT product_id, AVG(amount) AS avg_sales, MAX(amount) AS max_sales

FROM sales

GROUP BY product_id

自訂欄位（Derived Columns）創建新維度

可以在查詢中創建自訂欄位，用於根據現有的數據創建新的數據維度。例如計算營收增長率或轉換貨幣單位。

SELECT order_id, amount,

amount * 1.1 AS amount_with_tax

FROM orders

使用 SQL 編輯器的預覽功能

在 SQL 編輯器中編寫查詢後，可以使用預覽功能來檢查結果，確保查詢的正確性。在 Metabase 中，預覽會顯示查詢結果的前幾行，這樣在查詢複雜度較高時能快速調試。

結合 Metabase 的資料庫表連結（JOIN）功能

在 Metabase 中可以使用 SQL 進行表之間的 JOIN 操作，這樣可以整合多張表中的數據進行分析。

SELECT orders.order_id, customers.customer_name, orders.amount

FROM orders

JOIN customers ON orders.customer_id = customers.customer_id

將 SQL 查詢保存為「問題」（Question）

Metabase 允許將 SQL 查詢保存為「問題」，並可以在儀表板或定期報表中重複使用。這對於經常使用的查詢來說很方便，還可以將它們作為其他問題的數據源。

組合 Metabase 自動生成的 SQL 查詢

Metabase 中也支援以點選方式創建問題並自動生成 SQL 查詢，這些查詢可以作為 SQL 編輯器的基礎。你可以根據 Metabase 生成的查詢再進行修改，從而減少編寫 SQL 的時間。

支援資料庫的預存程序(Store Procedure)

如果您的資料庫允許執行 `CALL` 或 `EXEC` 語句，那麼您可以透過 Metabase 的 SQL 查詢來執行儲存程序。

使用 SQL 問題（SQL Query）

Metabase 支援 SQL 問題，您可以直接編寫 SQL 查詢。假設您有以下儲存程序：

DROP PROCEDURE IF EXISTS `sp_nba_player_statistics`;

DELIMITER //

CREATE PROCEDURE `sp_nba_player_statistics`(IN in_season varchar(10),IN in_player_name varchar(60))

main:BEGIN

/*

CALL sp_nba_player_statistics ('2021','LeBron James');

*/

SELECT

`game_full_record`.`PLAYER_NAME` AS `PLAYER_NAME`,

STR_TO_DATE(

CONCAT(

DATE_FORMAT(`game_full_record`.`GAME_DATE_EST`, '%Y-%m'),

'-01'

),

'%Y-%m-%d'

) AS `GAME_DATE_EST`,

AVG(`game_full_record`.`PTS`) AS `avg`,

AVG(`game_full_record`.`REB`) AS `avg_2`,

AVG(`game_full_record`.`AST`) AS `avg_3`

FROM

`game_full_record`

WHERE

`game_full_record`.`SEASON` = in_season

and `game_full_record`.`PLAYER_NAME` = in_player_name

GROUP BY

`game_full_record`.`PLAYER_NAME`,

STR_TO_DATE(

CONCAT(

DATE_FORMAT(`game_full_record`.`GAME_DATE_EST`, '%Y-%m'),

'-01'

),

'%Y-%m-%d'

)

ORDER BY

`game_full_record`.`PLAYER_NAME` ASC,

STR_TO_DATE(

CONCAT(

DATE_FORMAT(`game_full_record`.`GAME_DATE_EST`, '%Y-%m'),

'-01'

),

'%Y-%m-%d'

) ASC;

END

//

DELIMITER ;

您可以在 Metabase 中執行這個儲存程序的查詢：

CALL sp_nba_player_statistics ('2021','LeBron James');

使用 `WITH` 子句包裝結果

在某些資料庫（例如 MySQL 和 SQL Server）中，`CALL` 或 `EXEC` 語句不會返回可以被 Metabase 正確識別的結果集。為了解決這個問題，可以嘗試用 `WITH` 子句包裝查詢，或是在儲存程序內部使用 `SELECT`。

使用 View（檢視表）替代

如果儲存程序返回的資料格式固定，考慮建立 View 並讓 Metabase 使用該 View 來查詢資料。這樣做可以避免使用儲存程序時遇到的限制，並且提升 Metabase 的查詢性能。

CREATE VIEW sales_data_view AS

SELECT * FROM sales

WHERE order_date BETWEEN '2024-01-01' AND '2024-11-01';

在 Metabase 中，您只需查詢：

SELECT * FROM sales_data_view;

使用 Native Query 模式

部分資料庫（如 PostgreSQL、MySQL）支援在 Native Query 模式下執行儲存程序。此時，請確認您的資料庫使用者帳號有權限執行儲存程序。

注意事項

Metabase 不支援多個結果集：某些儲存程序會返回多個結果集，但 Metabase 目前只支援單一結果集。

性能考量：儲存程序通常用於複雜運算或資料處理，在 Metabase 中執行複雜儲存程序可能影響查詢性能。

安全性：執行儲存程序時，確保 Metabase 使用者在資料庫中有適當的權限。避免使用含有敏感操作的儲存程序。

7.6 自動化報表和定期報告生成

在 Metabase 中，自動化報表和定期報告生成可以通過「訂閱」功能來實現，讓用戶或團隊定期接收到最新的數據報表。這個功能特別適合需要定期監控業務數據或自動接收數據更新的情境。Metabase 提供了兩種主要的自動報表方式

儀表板報告（Dashboard Subscriptions）：將整個儀表板的內容定期發送給特定用戶。

問題報告（Question Subscriptions）：將單一查詢的結果定期發送給特定用戶。

以下是如何在 Metabase 中設置自動化報表和定期報告的詳細步驟：

訂閱報表生成的步驟

設定儀表板的自動報表

開啟儀表板：在 Metabase 中找到並開啟想要自動化的儀表板。

設置訂閱：在儀表板的右上角，點擊「...」選單，選擇「訂閱此儀表板」。

選擇頻率：Metabase 提供多種頻率選項，包括每天、每週、每月或自訂時間。選擇適合的發送頻率。

選擇發送時間：根據業務需求，設置合適的發送時間。例如，選擇早上 9 點來發送當日的更新。

選擇接收人：指定要接收報表的用戶或團隊，可以是 Metabase 的用戶，也可以是整個團隊群組。

指定格式和發送方式：可以選擇將報表以 PDF 格式或 HTML 內嵌方式發送至接收人電子郵箱。

設定問題（查詢）的自動報表

打開問題（Question）：在 Metabase 中，找到想要定期發送的查詢（Question）。

設置訂閱：在問題的右上角，點擊「...」選單，然後選擇「訂閱此問題」。

設置發送頻率：同樣選擇每日、每週或自訂的發送頻率。

選擇接收人和發送方式：指定接收人，並選擇是否要通過電子郵件發送數據。

定期報告的自訂選項

添加篩選器：在儀表板或查詢中添加篩選器，可以讓報表根據最新數據自動更新。例如，設置日期篩選器來自動生成最新數據的報表。

條件發送（觸發報表）：如果使用了 Metabase Enterprise Edition，可以設置條件觸發的報表，例如「當數據超過某個閾值時才發送報告」。這樣有助於在數據異常時及時通知管理層。

報表通知的應用場景

每日營運報告：每天自動生成營運數據的報表，發送至管理層，便於監控營收、庫存等關鍵指標。

每週績效匯總：設置每週的績效報告，包含銷售業績、客戶滿意度等指標，便於團隊每週回顧。

異常報警報表（僅限於企業版）：在數據異常時發送通知給相關人員，幫助及時處理問題。

注意事項

確保郵件伺服器配置正確：Metabase 需要配置郵件伺服器（SMTP）以便發送電子郵件通知。在 Metabase 的管理設置中，可以配置和測試 SMTP 伺服器，以確保訂閱通知可以正常發送。

資料更新頻率：定期報表的數據來源應當有適當的更新頻率，確保訂閱報表中的數據是最新的。

數據安全：確保報表中的數據對應接收人的權限。Metabase 可以根據用戶權限自動過濾數據，避免不相關人員接收到敏感信息。

如果你需要查看、修改、刪除或暫停訂閱報表，可以按照以下步驟進行操作：

查看所有已設置的訂閱報表

查看個人設定的訂閱

點擊 Metabase 右上角的「個人頭像」。

選擇「我的訂閱（My Subscriptions）」。

你可以在這裡查看所有你設定的訂閱，包括電子郵件和 Slack 訂閱。

管理員查看所有訂閱

點擊右上角的「設定（Settings）」>「管理員設定（Admin Settings）」。

選擇「排程作業（Scheduled Tasks）」。

在這裡可以看到所有設置的訂閱任務，包括報表的名稱、訂閱者、排程頻率等資訊。

修改訂閱報表

編輯訂閱排程

前往問題（Question）或儀表板（Dashboard）頁面。

點擊右上角的「訂閱（Subscribe）」按鈕，然後選擇「編輯訂閱（Edit Subscription）」。

修改排程的頻率、接收方式（Email 或 Slack）等設定，然後保存。

修改通知的格式

當前 Metabase 支持兩種格式：

標準格式（Standard）：顯示完整報表內容。

摘要格式（Summary）：僅顯示報表摘要。

刪除或暫停訂閱報表

刪除訂閱

前往問題或儀表板頁面，點擊「訂閱」按鈕。

選擇「管理訂閱（Manage Subscriptions）」。

點擊「刪除（Delete）」按鈕來取消該訂閱。

暫停訂閱

Metabase 並沒有直接的「暫停」功能，但可以透過以下方式達到暫停效果：

編輯訂閱排程，將排程頻率設為「不排程（Never）」或設為一個遠期的日期。

這樣做相當於暫停了訂閱報表的發送，隨時可以恢復設定。

7.7 整合台灣Map 的使用

在 Metabase 中使用地圖視覺化功能結合台灣地圖，可以幫助展示與地理位置相關的數據，例如銷售地點、客戶分佈、門店績效等。在使用台灣地圖前，我們先用官網的範例，說明使用地圖視覺化的前置相關設定及作業。

首先，我們先參考官網上的範例：

請特別注意：根據(By) 的欄位，是取 User->State

查看一下相關的欄位設定，包括經緯度欄位，這個要進入後台設定【表元數據】

完成相關欄位的設定

報表顯示如下

7.1.1 上傳地圖資料到 Metabase

使用 GeoJSON 上傳自訂地圖

如果你需要展示台灣縣市或行政區劃，可以透過上傳台灣的 GeoJSON 文件實現自訂區域地圖：

取得台灣的 GeoJSON 文件：

你可以從 GitHub 或 台灣政府開放資料平台 下載包含台灣縣市邊界的 GeoJSON 文件。

https://github.com/ronnywang/twgeojson

https://github.com/gexMichael/metabase_book_reference/tree/main/map

因為對中文的支援問題，所以請改下載下面我修改後的地圖版本

https://raw.githubusercontent.com/gexMichael/metabase_book_reference/refs/heads/main/map/twcounty2010.2.en.json

確認 GeoJSON 文件中包含 id、name 欄位，方便對應資料。

上傳 GeoJSON 至 Metabase：

到 Metabase 管理員設定中，找到「地圖」設定，選擇上傳自訂 GeoJSON 文件。

上傳後，確認台灣地區正確顯示。

建立問題並使用地圖視覺化：

在 Metabase 中建立問題（Question），選擇你的資料表，並且確保包含區域名稱對應 GeoJSON 中的 name 欄位。

選擇「區域地圖」，然後從下拉選單中選擇剛剛上傳的 GeoJSON 地圖。

設定顏色和數據欄位，即可完成視覺化。

如何得知某地址的經緯度：

可以利用 Google Map 輸入地址，即可在網址列中顯示

使用 OpenStreetMap 和 Metabase 的地圖圖層

Metabase 使用 OpenStreetMap 作為背景地圖來源。若你的資料集中包含了經緯度欄位，可以直接在「點狀地圖」(Pin map) 中顯示這些地點資訊。

如果你有包含經緯度的銷售數據表，例如：

客戶名稱 | 城市 | 緯度 (latitude) | 經度 (longitude) | 銷售金額
客戶 A | 台北 | 25.0330 | 121.5654 | 100,000
客戶 B | 高雄 | 22.6273 | 120.3014 | 150,000

在 Metabase 中：

選擇「點狀地圖」視覺化。

設定經緯度欄位。

你的地圖將會顯示每個銷售地點，並可根據銷售金額設置氣泡大小或顏色。

以上2種地圖類型適合不同的情境

使用經緯度可以快速建立點狀地圖，適合展示客戶或門市分布。

使用自訂 GeoJSON 可以展示台灣的行政區劃統計。

結合 Metabase API 和外部工具可以實現更多互動和自訂需求。

7.7.2 地圖未正式顯示的問題排除

在 Metabase 中匯入台灣城鎮地圖（TopoJSON 或 GeoJSON 格式）後，如果地圖能成功顯示，但無法配合資料顯示內容，可能的原因包括：

資料與地理邊界不匹配

Metabase 需要根據地理編碼（Geocoding）來將您的資料映射到地圖上。如果資料中的欄位名稱或格式不正確，可能無法匹配地圖上的地理區域。請檢查：

資料中的欄位名稱與匯入地圖檔案中的欄位名稱是否一致。例如，GeoJSON 中常見的屬性名稱是 `name`、`properties.NAME_2` 等。

資料中包含的行政區域名稱是否與地圖檔案中的地區名稱一致，特別是中文字符可能存在字體或編碼差異。

資料中的行政區名稱是否包含完整名稱，例如「台中市」而不是「台中」。

解決方案

可以將資料中的地區名稱與地圖檔案中的地區名稱做一次比對，並進行統一處理。

在 SQL 查詢中使用 `UPPER()` 或 `LOWER()` 函數來統一名稱格式，或進行字串替換處理。

GeoJSON 或 TopoJSON 檔案格式問題

匯入的地圖檔案格式可能有問題，尤其是在屬性定義上。如果地圖檔案中的 `properties` 欄位未包含與資料匹配的屬性，Metabase 無法進行關聯。

確認 Metabase 匯入地圖時使用的鍵值是正確的，並與資料表中的欄位一致。

這個問題排除起來有點複雜，建議直接使用無格式問題的圖資，在 GitHub 及政府公開平台上應該可以找的到。

Metabase 配置問題

在 Metabase 中設定地圖顯示時，必須選擇正確的地理欄位類型。如果資料中的欄位未被設為地理欄位，Metabase 可能無法識別。

解決方案

在資料庫中，將資料表中的行政區域欄位設置為地理欄位，這樣 Metabase 可以識別並進行映射。

進入『Data Model』設定，找到您的資料表並設置地理欄位類型為 『Region』 或 『City』。

資料格式或類型不一致

資料表中的地區名稱可能包含空白字符、格式錯誤或不正確的字元，導致匹配失敗。

檢查點

檢查資料中的地區名稱，並移除任何多餘的空格或標點符號。

使用 Metabase 的『Custom Column』功能或 SQL 查詢進行清理，例如：

TRIM(REPLACE(`地區名稱`, ' ', ''))

以上是標準的檢查流程，筆者第一次使用 Map 功能時，把上面的方法都檢查一遍，但仍遲遲無法正確顯示，欄位名稱、型態、DataModal 都仔細檢查，實在找不到任何錯誤，經過了幾天的 Google 及 ChatGPT，還是一無所獲。後來，忽然靈光一閃，會不會是中文的問題? 抱著死馬當活馬醫的無奈心態，就試著修改圖資檔，將中文全部改為英文，然後再將測試資料也改為英文，神奇的一幕出現了，一直無法顯示的地圖內容，終於正確的顯示出來了，這都什麼時代了，還有這種鳥問題，特此紀錄以警世人。

另外還有一個問題到出版前仍無解，就是無法匯入鄉鎮地圖(當然就更別提村里級的資料)，匯入一直報下列錯誤，但是檢查格式及內容都找不到錯誤，目前只能歸咎於Metabase暫不支援吧。

7.7.3 使用『政府資料開放平台』的資料實例展示

以下使用『政府資料開放平台』中的 『新北市公共自行車租賃系統(YouBike2.0)』資料集為案例，展示利用 Metabase的 Map 的展示效果

取得資料集

https://data.gov.tw/dataset/146969

建立資料表

create table youbike_newtaipei (

sno VARCHAR(10),

sna VARCHAR(50),

tot int,

sbi int,

--配合地圖資料,欄名改為 county

county VARCHAR(20),

mday VARCHAR(20),

--經緯度設為 float

lat FLOAT,

lng FLOAT,

ar VARCHAR(100),

sareaen VARCHAR(100),

snaen VARCHAR(100),

aren VARCHAR(100),

bemp VARCHAR(10),

act VARCHAR(10),

primary key (sno)

)

匯入資料：稍後我們會用同一份資料顯示2種不同的地圖可視化

區域地圖(Region Map)：要配合前面上傳的 geoJSON 格式的圖資，為了簡單的展示，我修改了前面幾筆的 county (縣市)資料，而且一定要使用英文(前一節有說明)。

固定地圖(Pin Map)：資料及本身要有完整的經緯度資料

該 Table 的表元資料(Metadata) 相關欄位的設定一定要正確，包含城市欄位及經緯度。

接下來，我們就分別展示這2類不同類型報表的設定及介面

首先，我們展示『區域地圖(Region Map)』，只要正確設定 county 欄位為城市，且資料和上傳的圖資能正確對應，就可以顯示 Region Map。

Metabase 的 區域地圖 (Region Map) 是一種地理可視化工具，用來顯示基於地區、國家、州/省、市等區域的數據。相較於傳統的數據圖表，區域地圖可以更直觀地呈現地理相關數據，幫助使用者快速識別區域間的差異與趨勢。

透過區域填色或著色效果，區域地圖可以幫助強調不同地區之間的差異，便於快速辨識出表現異常或需要關注的區域。

公司可以利用區域地圖分析不同地區的銷售表現，識別出銷售強勢與弱勢地區，從而進行市場策略調整。例如：查看各省的銷售額、各城市的客戶量分佈等。

區域地圖適合展示較高層級的地理單位 (如國家、州/省)，若需要顯示更詳細的區域 (如街區、郵遞區號)，可能無法滿足需求。

接下來，展示『固定地圖(Pin Map)』

Metabase 的固定地圖是一個強大的工具，能幫助企業視覺化具體地點的分佈情況，適合用於精細化的地理分析，如商店位置、客戶分佈、物流網絡等。它提供了高度的互動性與即時分析能力，但在使用時需確保資料的準確性與完整性。結合區域地圖與固定地圖，企業能從不同層級的地理數據中獲得深入的洞察，提升業務決策效果。

固定地圖 (Pin Map) 是 Metabase 中另一種常見的地理可視化工具，與區域地圖不同，它強調的是 具體地點 (Location) 的標記，通常使用經緯度座標或地址資料來顯示特定位置。固定地圖適合展示具體地點的數據，如客戶地址、商店位置、配送點等。這種圖表能夠幫助企業和分析人員更精準地了解空間分佈，並進行地理相關的決策分析。

使用不同顏色或標記大小來代表不同的數據指標（如銷售額、客戶數量等），幫助使用者快速識別重要地點或數據異常點。

銷售團隊可以通過固定地圖查看客戶的地理分佈情況，分析主要客戶群體的集中地點，從而針對性地進行市場行銷活動。

資料表中需要包含 經緯度 (Latitude, Longitude) 欄位，或包含可識別地址的欄位，如：

latitude：緯度座標 (e.g., 25.0330)

longitude：經度座標 (e.g., 121.5654)

address：地址 (e.g., "Taipei 101, Taipei, Taiwan")

可以像 Google Map 一樣 Zoom In/Out 來查看。

區域地圖 (Region Map) 與固定地圖 (Pin Map) 的比較

特點 | 區域地圖 (Region Map) | 固定地圖 (Pin Map)
資料需求 | 需要地區名稱 (國家、州/省、市) | 需要經緯度或具體地址
適用場景 | 分析地區層級的數據 (如國家銷售量) | 分析具體地點的數據 (如分店位置)
展示效果 | 強調地區間的差異，填色效果 | 精準顯示具體地點，標記點效果
互動性 | 滑鼠懸停查看區域詳細資料 | 點擊標記點查看具體地點的詳細資料
性能 | 適合較高層級的分析，資料點少 | 適合展示大量資料點，但可能受限於性能

第八章

Metabase 與其他系統的整合

8.1 與『智能總管』整合為例

8.2 與 AdmitLTE 整合(本書使用 v3 版)

8.3 聊聊其他 BI 可視化工具

8.4 升級到 v.51.3 版

第8章 Metabase 與其他系統的整合

將 Metabase 與後台管理系統整合可以讓企業在後台系統中直接查看數據分析結果，無需來回切換工具，從而提高工作效率和數據使用便捷性。Metabase 提供了嵌入功能，可將儀表板和報表作為 iframe 嵌入到其他系統中。這種方式適合需要在後台管理系統的頁面上顯示數據分析結果的場景，能提供無縫的用戶體驗。

如果分析數據必須在另一個平台上查看，使用者需要頻繁切換工具，增加了工作流程的繁瑣度。而整合後數據分析功能能直接出現在後台管理系統中，減少切換時間和數據查找的重複工作。

8.1 與『智能總管』整合為例

『麒麟低代碼平台』是由捷克仕移動，橫空出世所推出的一套低代碼開發平台，主要的理念是希望成為企業數位轉型的好幫手，讓每家企業都擁有簡單實用的資訊系統。而

『智能總管』 EIS 企業辦公室資訊系統，則是基於麒麟低代碼平台所開發的一套應用程式，將企業內部常會使用的功能，整合於一套系統。

歡迎上網查看詳細的說明： https://blog.gex.com.tw/

下面是將 Metabase 的 Dashboard 整合到『智能總管』的參考畫面。

只要建立一支新的程式代號，並貼上下面的 json 內容(參考 metabase 提供的崁入程式碼)，就能顯示出 metabase 的圖表及 Dashboard。

{

  "type": "page",

  "body": {

    "type": "iframe",

    "src": "https://metabase.gex.com.tw/public/dashboard/f654c3f2-725f-400f-b338-d6ea37147f53",

    "height": "96%"

  }

}

{

  "type": "page",

  "body": {

    "type": "iframe",

    "src": "https://metabase.gex.com.tw/public/question/b387640f-d35f-4dd6-9c28-55455b37ef70",

    "height": "96%"

  }

}

可以在 Metabase的『系統管理員』中查詢已公開分享的

8.2 與 AdmitLTE 整合(本書使用 v3 版)

AdminLTE 是一個開源的後台管理界面框架，基於 Bootstrap 打造，專為快速構建現代化、響應式的後台管理系統設計。它提供了一系列預設的 UI 元素、插件及佈局範本，可以輕鬆地將其整合到各類後台系統中，幫助開發者減少從零開發的時間和精力。以下是 AdminLTE 的一些核心特點：

響應式設計：AdminLTE 使用 Bootstrap 的網格系統，確保界面在桌面、平板和手機等不同設備上都能適應屏幕尺寸，自動調整佈局。

多樣化的 UI 元素：提供豐富的 UI 元件如表單、表格、圖表、通知欄、導航欄和按鈕等，便於創建直觀的操作界面。

自定義皮膚與佈局：內建多種顏色主題和佈局選項，開發者可以根據需求進行個性化設計，使界面更符合企業風格。

插件整合：AdminLTE 支持多種流行插件，如 DataTables、Chart.js 和 jQuery UI 等，適合用於表格管理、數據可視化等。

良好的文檔支持：AdminLTE 有詳細的文檔和示例，幫助開發者快速上手並輕鬆實現所需的後台功能。

AdminLTE 常用於構建企業內部的管理系統、客戶管理（CRM）、電子商務管理平台等，其靈活性和可擴展性使其成為許多開發者的首選後台管理框架。

https://github.com/ColorlibHQ/AdminLTE

https://github.com/ColorlibHQ/AdminLTE/tree/v3

<!-- Content Wrapper. Contains page content -->

<div class="content-wrapper">

<!-- Content Header (Page header) -->

<section class="content-header">

<div class="container-fluid">

<div class="row mb-2">

<div class="col-sm-6">

<h1>Metabase Dashboard Demo</h1>

</div>

<div class="col-sm-6">

<ol class="breadcrumb float-sm-right">

<li class="breadcrumb-item"><a href="#">Home</a></li>

<li class="breadcrumb-item active">Metabase Dashboard Demo</li>

</ol>

</div>

</div>

</div><!-- /.container-fluid -->

</section>

<!-- Main content -->

<!-- iframe here -->

<iframe

src="http://metabase.gex.com.tw/public/dashboard/f654c3f2-725f-400f-b338-d6ea37147f53"

frameborder="0"

width="100%"

height="2048"

></iframe>

</div>

<!-- /.content-wrapper -->

<footer class="main-footer">

<div class="float-right d-none d-sm-block">

<b>Version</b> 3.2.0

</div>

<strong>Copyright &copy; 2014-2021 <a href="https://adminlte.io">AdminLTE.io</a>.</strong> All rights reserved.

</footer>

AdminLTE 的不足

AdminLTE是一套優秀的後台框架，但是它是一套純前端的框架，如果要實際應用到後台系統中，需要自行開發後端(也就是資料庫存取) 相關的程式及 API，才能完善的支援包括

選單管理

權限管理

等後台管理系統基礎的功能。

如果只是單純的展示非機密資料，或僅在內部網路特定範圍內查看，這當然也是一個簡單的可行方式。

企業內部如果已經有自研的資訊系統，利用 iFrame 的方式，直接整合到現有的系統，當然是最佳的選擇。

8.3 聊聊其他 BI 可視化工具

BI 可視化工具市面上種類繁多，包含商業版和開源版，功能特點各異。以下是一些知名的商業及開源 BI 可視化工具及其特色：

商業 BI 可視化工具

Tableau

特色：Tableau 是一款直觀且功能強大的數據可視化工具，以其交互式儀表板和多樣化的圖表形式著稱。它支持拖放操作，便於使用者輕鬆構建可視化，並且能處理大型數據集。Tableau 還具備豐富的即時數據連接器，支持和各種數據源整合。

適用場景：大型企業，數據分析需求較為複雜的場景，需要深入分析和交互的數據探索。

Microsoft Power BI

特色：Power BI 是 Microsoft 旗下的 BI 工具，緊密整合了 Office 365 和 Azure 生態系統，易於與其他 Microsoft 工具（如 Excel 和 SQL Server）連接。其內建許多資料視覺化模板，並支援即時數據更新，報表和儀表板也易於分享。

適用場景：適合 Microsoft 環境下的中小型企業，以及已經使用 Microsoft 產品的組織。

Qlik Sense

特色：Qlik Sense 強調關聯數據模型和智能數據發現，具備高度交互性，能動態展示數據之間的聯繫。Qlik 使用內存技術快速處理數據，適合探索性分析。其「關聯引擎」使用戶可以在數據中尋找新模式。

適用場景：需要深度數據發現和探索，尤其適合需要分析不同數據維度和關係的企業。

Looker (Google Cloud)

特色：Looker 是基於 LookML 語言的一款現代 BI 工具，擅長處理雲端數據，支援即時數據查詢。Looker 強調數據治理，易於建立可重複使用的數據模型，並且可以通過 LookML 進行自訂。

適用場景：需要雲端部署和數據治理的場景，尤其是 Google Cloud 生態系統中的企業。

開源 BI 可視化工具

Metabase

特色：Metabase 是一款易於使用的開源 BI 工具，專為不具備技術背景的用戶設計。提供直觀的圖形界面，支持無需 SQL 的數據查詢及分析，適合中小企業或初學者快速上手。

適用場景：中小企業、不具備專業數據分析師的團隊，需要直觀儀表板和簡單可視化。

Apache Superset

特色：Superset 是 Apache 專案之一，提供多樣的圖表和視覺化選擇。支持自訂 SQL 查詢和複雜數據轉換，且擴展性強，適合需要高度自定義的數據可視化。Superset 的社區活躍，經常更新新功能。

適用場景：有一定技術基礎的團隊，追求高度自定義和靈活性的環境，或已經使用其他 Apache 專案的企業。

Redash

特色：Redash 是一款輕量級、開源的 BI 工具，以其強大的 SQL 編輯器和多數據源支持而聞名。Redash 支持將 SQL 查詢結果直接轉化為可視化圖表，並且有多種內建的圖表類型。

適用場景：對 SQL 熟悉的數據分析師，特別適合多數據源的簡易整合和查詢。

Grafana

特色：Grafana 最初是一款監控和時序數據可視化工具，廣泛應用於 DevOps 和 IT 運營領域。支持多種數據源如 Prometheus、Elasticsearch 和 InfluxDB，並提供豐富的插件庫。

適用場景：主要用於 IT 運維和監控場景，需要時序數據分析或多數據源監控的環境。

總結

中小企業和初學者可從 Metabase、Power BI 或 Redash 入手，而對於需要更複雜數據處理和交互的企業，Tableau、Qlik Sense、Looker 是理想選擇。若企業希望控制成本且具備一定的技術基礎，Apache Superset 和 Grafana 提供了高度自定義和擴展的開源選項。

8.4 升級到 v.51.3 版

如何升級? 使用JAR 文件更新 Metabase

停止目前的 Metabase 服務

在 Windows 版，按下Ctrl-C 後，再按 Y 即可結束服務。(如下圖)

下載最新版本的 JAR 文件

https://github.com/metabase/metabase/releases

到上述網址找最新發布版更新即可

重新啟動 Metabase

提示：在更新之前，建議先備份 Metabase 的資料庫檔案（通常是 metabase.db.mv.db 或您設定的外部資料庫）。

Metabase v0.51 帶來了一系列令人興奮的新功能與改進，旨在提升用戶體驗並擴展應用能力：

嵌入外部內容

現在可以將外部內容以 iframe 的形式嵌入儀表板，使第三方工具或資源能直接整合進分析環境，提升工作效率。

例如直接連接一份 Google Doc 的文檔，直接顯示在 Dashboard。

增強的指標功能

指標（Metrics）變得更加實用，提供更清晰的方法來衡量關鍵業務數據。

新增 Databricks 驅動程式

支援 Databricks，讓與這個強大的資料倉儲工具的整合更加順暢。

警報的 Webhook 功能

Metabase 現在可以通過 Webhook 將警報發送到不同平台，大幅提高通知的靈活性和可達性。

改進的 API 與資料序列化

改進的 API 能力包括更高效的資料序列化，特別適合 Metabase Cloud 用戶進行資料的匯入與匯出。

趨勢圖的自訂化

趨勢圖新增更多選項，允許用戶配置時間範圍與基準，幫助更深入地了解數據趨勢。

令人驚豔的Pie Chart的多層顯示新功能

會依照 Group By 的資料層次(Country + City)，分層顯示關聯數字，一目了然。

再多 Group 一層(Country + State + City)，顯示更細膩得資料

這些更新重點在於讓 Metabase 更加靈活、友好，適合各種商業智慧的需求。如需更詳細資訊，可以參考 https://discourse.metabase.com/t/metabase-51-has-shipped/179844/2

附錄 A

常見問題解答

附錄A 常見問題解答

以下是一些常見的關於 Metabase 的問答 (Q&A)，可以幫助解答一些對開源系統的疑慮：

什麼是 Metabase？

Metabase 是一個開源的商業智慧 (BI) 工具，幫助用戶簡單地分析數據和生成可視化報告。它具有直觀的界面，無需編寫 SQL 代碼即可進行數據查詢。

Metabase 是一個用於數據分析和可視化的工具。它允許用戶通過簡單的界面查詢資料庫，並生成圖表和儀表板。Metabase 支持多種資料庫，包括 MySQL、PostgreSQL、MongoDB 等。

使用 Metabase 的優點與缺點

優點

開源免費：Metabase 是開源軟件，免費使用。

易於使用：界面友好，適合非技術用戶。

多資料庫支持：支持多種資料庫，靈活性高。

缺點

功能有限：相比一些商業 BI 工具，Metabase 的高級功能較少。

性能問題：在處理大規模數據時，可能會遇到性能瓶頸。

如何安裝 Metabase？

Metabase 可以通過多種方式安裝，包括：

Docker：使用 Docker 容器運行。

Jar 文件：下載 Metabase 的 Jar 文件並使用 Java 運行。

雲服務：選擇雲端服務提供商的解決方案。

具體安裝步驟請參考『官方文檔』

https://www.metabase.com/docs/latest/installation-and-operation/running-the-metabase-jar-file

Metabase 支持哪些資料庫？

Metabase 支持多種資料庫，包括：

MySQL

PostgreSQL

MongoDB

SQLite

Microsoft SQL Server

Google BigQuery

Metabase 是否支持多語言？

是的，Metabase 支持多語言界面，您可以在設置中選擇所需的語言。

Metabase適用對象？

Metabase 適合中小型企業、初創公司以及需要簡單數據分析和可視化的團隊。它特別適合那些沒有專業數據分析師的團隊，因為它的易用性使得任何人都可以輕鬆上手。

如何獲取更多支持？

參加社區論壇

https://discourse.metabase.com

查看官方文檔

https://www.metabase.com/docs/latest/

https://www.yuque.com/summer-l4v2u/metabase

參與 GitHub

https://github.com/metabase/metabase

如何開始使用 Metabase？

您可以選擇以下任一方法來開始使用 Metabase：

雲端托管版本：訂閱 Metabase 提供的雲端服務

https://store.metabase.com/

自行托管：在您自己的伺服器上安裝 Metabase

如何解決常見錯誤？

無法連接資料庫：檢查資料庫的連接信息和網絡設定。

查詢結果不正確：檢查查詢的篩選條件和聚合函數。

頁面加載緩慢：考慮優化查詢或增加伺服器資源。

如何處理性能問題？

優化查詢：檢查並優化 SQL 查詢。

增加硬體資源：增加伺服器的 RAM 和 CPU 以提高性能。

資料庫索引：確保在資料庫中建立適當的索引，以加快查詢速度。

Metabase 是否適合中小企業 (SMEs)？

是的，Metabase 的易用性、靈活性和可擴展性使其非常適合中小企業使用，無論是簡單的業務報表還是複雜的數位儀表板(Dashboard)，Metabase 都能提供支持。

Metabase 的版本發布歷史

https://github.com/metabase/metabase/releases

附錄B

其他資源和參考

附錄B 其他資源和參考

Metabase 官網

https://www.metabase.com

Metabase GitHub 網址

https://github.com/metabase/metabase

Metabase YouTube

https://www.youtube.com/@metabasedata

Metabase 官方線上手冊(英文)

https://www.metabase.com/docs/latest/

Metabase官方論壇

https://discourse.metabase.com

Tour of Metabase for beginners (初學者教程)

https://www.metabase.com/learn/

Metabase 雲端解決方案(SAAS)

https://store.metabase.com/

Metabase中文社區(簡體)

https://metabase.dazdata.com/

Metabase中文文檔(簡體)

https://www.yuque.com/summer-l4v2u/metabase

Metabase 入門教程

https://www.bilibili.com/video/BV1WG411c7BG

https://www.bilibili.com/video/BV1Wt4y1N79f

MariaDB 官網

https://mariadb.com

參考使用工具

https://maplocation.sjfkai.com/ (地址經緯度轉換)

如何使用Gmail的SMTP發送信件

https://www.ibest.com.tw/news-detail/gmail-smtp/

推薦書目

資料故事時代：大數據時代的未來，將由資料「說書人」定義！亞馬遜、微軟等企業巨擘都在用作者：布倫特．戴克斯(Brent Dykes)

獨角獸專案：看IT部門如何引領百年企業振衰起敝，重返榮耀 作者：Gene Kim

One More Things

本書作者的其他著作，歡迎指教

ERP開發勝經

完整介紹開發企業資訊系統，如 ERP、CRM等現代企業不可或缺的資訊系統，所需瞭解的各層面技術及管理相關知識。

深入探討【以資料庫為開發核心】的資訊系統開發框架概念。

不空談理論，以實際完成的 WebERP系統為討論核心，說明實作的技巧，並可提供顧問輔導，協助企業快速開發所需的系統。

透過以資料庫為開發核心的理念，透過開發四化的實作框架，實現資訊系統從無到有的完整開發流程。

後續會提供一套麻雀雖小但五臟俱全的 Windows 版本的ERP系統(買賣業) 供學習研究。

企業資訊系統開發指南

作 者：陳威均

發 行 人：陳威均

電子郵件：genie.michael@gmail.com

網 址：www.gex.com.tw

萬事如易：fate.gex.com.tw

出版年月：2021年 02月初版

定 價：199元

ISBN：978-957-438-624-6

展售處（銷售服務）：

Pubu 飽讀電子書平台

網 址：https://www.pubu.com.tw/

Readmoo 讀墨電子書平台

網 址：https://readmoo.com/

玩轉SQL

數據被譽為「新時代黑金」，而資料庫是其最核心的基礎架構，能掌握這個關鍵技能，將會是最大贏家。

除了成熟但昂貴的商業授權資料庫外，本書重點介紹 MariaDB(MySQL)及 PostgreSQL 等優秀的開源資料庫，幫助您快速理解各資料庫的優缺點。

本書大量運用『以此類推』的說明方式，只要您具備基礎的SQL基礎，就能讓您快速且有效率的快速學習 MS-SQL、MariaDB(MySQL)及PostgreSQL的核心知識。

超過一百個由淺入深的實際案例，帶您快速遨遊 MS-SQL、MariaDB(MySQL) 及 PostgreSQL 三大資料庫的SQL 語法天地。

後續會提供已實際上線的完整 SQL 模組如 ORM、WorkFlow Core 等書中提到的實作案例原始碼供學習研究。

超過一百個由淺入深的實際案例，帶您快速遨遊 MS-SQL、MariaDB 及 PostgreSQL 資料庫的SQL 語法天地

作 者：陳威均

發 行 人：陳威均

電子郵件：genie.michael@gmail.com

網 址：www.gex.com.tw

萬事如易：fate.gex.com.tw

出版年月：2021年 02月初版

定 價：199元

ISBN：978-957-438-603-1 (ePub)

ISBN：978-957-438-626-0 (PDF)

展售處（銷售服務）：

Pubu 飽讀電子書平台

網 址：https://www.pubu.com.tw/

Readmoo 讀墨電子書平台

網 址：https://readmoo.com/

萬事如易官網的介紹

萬事如易是由捷克仕移動所開發的一套最酷炫的占卜及八字的預測平台。 目前系統仍在持續的開發和完善中，歡迎各位愛用者提供您的使用心得及各種改善的建議。

這個網站緣起於在多年以前，一次和客戶的業務拜訪時，客戶提出了一個需求，如何有效掌握下個月、下一季甚至下一年度的產品生產需求預估。 當下雖然以要準確預估某時間的產品需求量，和氣象局的天氣預估一樣，越久越不準確，僅具備基本的參考價值。但是，我的心中 有一個聲音響起，能不能用古老的易經占卜來解決這個看似不可解的問題，這個念頭一直縈繞在我的心中，這就是您現在手上的 [萬事如易] 的源起。

古老的易經歷經千年歲月，仍不減其魅力，但是信者恆信，不信者嗤之以鼻。我們希望藉由本 App 能夠讓蒙塵的明珠，風華再現。 借助現代科學的統計，驗證這歷久彌新的古老智慧。然此工程浩大，非數年無法盡其功，僅拋磚引玉，希望有朝一日能見其功。末學以此自勉。

[萬事如易] 和其他占卜APP最大的不同，在於我們可以讓許多人(成千上萬人) 針對同一個問題占卜，這在以往是根本無法想像的，但是現在我們可以透過如易APP做到。為什麼我們要這麼做? 因為占卜的準確率，很難達到 100%，這幾乎是不可能的任務。如易APP還只是個小學生，當然也不例外。所以我們想透過統計及大數據來解這個看似無解的難題。我們不求 100% 的準確率，我們所求的是希望能得到一個值得參考的趨勢預測即可。

每個人在日常生活中，總會有一些困惑，不管是工作事業、開店是否賺錢、感情迷惑、兒女課業或是長輩身體健康等，都希望身邊能有一個可以提供未來預測參考的工具，[萬事如易] 能讓您可以自行增加新的議題，甚至可以自己設定群組，然後針對不同的議題，可以設定某一個群組內的人，才能占問，如此就能提供非常大的討論彈性及隱密性。

整個平台都是採用 [玩轉SQL] 及 [ERP開發勝經] 這2本書中所提的開發方式，所以它是這2本書的實作案例。

ERPNext 新手全攻略：從零開始的開源 ERP 必備指南

本書針對希望提升企業運營效率的初學者設計，全面介紹了 ERPNext 系統的基礎知識和應用實踐。ERPNext 是一款強大且靈活的開源 ERP 系統，具備以下優點：

『開源免費』：無需高額授權費用，適合中小企業和初創公司。

『模組化設計』：涵蓋財務、庫存、銷售、人力資源等多個模組，功能全面。

『易於定制』：支持根據企業需求進行二次開發，靈活應對業務變化。

『用戶友好』：界面簡潔直觀，操作便捷，減少學習成本。

本書內容深入淺出，實用性強，幫助讀者迅速掌握開源 ERP 的精髓，為企業的數字化轉型提供堅實基礎。

無論您是企業管理者、IT 專業人士，還是對 ERP 有興趣的愛好者，這本書都將是您的得力助手。

地表最好用的開源 ERP

作 者：陳威均

發 行 人：陳威均

電子郵件：genie.michael@gmail.com

網 址：www.gex.com.tw

萬事如易：fate.gex.com.tw

出版年月：2024年 07月初版

定 價：499元

ISBN：9786260130114

展售處（銷售服務）：

Pubu 飽讀電子書平台

網 址：https://www.pubu.com.tw/

Readmoo 讀墨電子書平台

網 址：https://readmoo.com/

玩轉 Metabase：用NBA數據探索開源BI工具的新視野

本書專為初次接觸商業智慧（BI）的讀者打造，幫助您快速掌握 Metabase 的基本操作與實踐應用。隨著數位轉型加速，數據分析成為企業決策的核心。而 BI 工具不僅僅是資料可視化的平台，更是洞察商業機會、提升效率的關鍵。

本書以深入淺出的方式，帶您認識 BI 的重要性：如何透過數據驅動企業決策、減少不確定性，並將複雜的數據轉化為直觀的圖表與報告。我們從 Metabase 的簡單安裝與設置開始，逐步探索如何建立查詢、分析數據以及設計儀表板，最終幫助您在短時間內構建專業級 BI 解決方案。

本書透過真實數據探索 NBA 球隊與球員的歷年紀錄。並將利用 Metabase 對這些豐富的數據進行分析，從中發掘有趣的趨勢與隱藏的故事，並透過圖表呈現。透過眾多實例的展示，讓您透過學習、模仿，最終能運用在不同領域。無論是對 BI 完全陌生的新手，還是尋求更高效工具的專業人員，本書都將成為您了解 Metabase 和掌握 BI 核心能力的最佳夥伴。

最容易上手的 BI 開源工具

作 者：陳威均

發 行 人：陳威均

電子郵件：genie.michael@gmail.com

網 址：www.gex.com.tw

測試網站：metabase.gex.com.tw

出版年月：2024年 12月初版

定 價：399元

ISBN：9786260135423

展售處（銷售服務）：

Pubu 飽讀電子書平台

網 址：https://www.pubu.com.tw/

Readmoo 讀墨電子書平台

網 址：https://readmoo.com/