將 Metabase 與 MongoDB 搭配使用
在 Metabase 中視覺化與探索 MongoDB 資料。執行 MongoDB 原生查詢並分析非表格資料。
在本教學課程中,我們將使用免費的 MongoDB Atlas 叢集與 Metabase Cloud 的免費試用版,建立一個儀表板來探索 MongoDB 範例資料。
步驟 1:建立 MongoDB Atlas 叢集
-
前往 MongoDB Atlas 並建立帳戶。
-
建立免費的 M0 叢集。勾選「預先載入範例資料集」方塊,將範例資料載入您的叢集 — 我們將在本教學課程中使用它。
如果您在建立叢集後看到叢集連線彈出視窗,您可以先關閉它。在叢集佈建期間,讓我們建立一個 Metabase Cloud 執行個體,以連線到叢集。
步驟 2:設定 Metabase
- 從 https://metabase.dev.org.tw/cloud 開始。系統會要求您建立 Metabase Store 帳戶。
- 選取 Starter 方案。別擔心:無論您選取哪個方案,您都會獲得 14 天免費試用期,而且您可以隨時變更或取消您的方案。
-
選取 Metabase 的別名與區域
別名:您將用來登入 Metabase 的 URL。
區域是您的 Metabase 將託管的區域 (您可以稍後變更它)。
- 設定 Metabase 約需 2 分鐘。(同時,您可以設定 Atlas 叢集的網路存取權)。一旦您的 Metabase 準備就緒,系統會要求您為這個新的 Metabase 建立一個獨立帳戶(與您的 Metabase Cloud store 帳戶分開)。
您可以在 Metabase 設定畫面中輸入您的資料庫詳細資訊,但我們先跳過這個步驟,稍後再新增資料庫。
步驟 3:設定 Atlas 叢集以允許來自 Metabase 的連線
為了確保 Metabase 可以讀取您叢集中的資料,您需要允許從 Metabase 使用的 IP 位址進行存取。
在您的 Atlas 叢集設定中,前往網路存取並新增對應於您所選區域的 Metabase Cloud IP 位址。
步驟 4:取得 MongoDB 連線資訊
若要將 Metabase 連線到 MongoDB,您需要取得連線字串或連線參數。對於 Atlas 叢集中的資料庫,連線字串選項更方便。
- 在您的 Atlas 叢集介面中,按一下連線,然後選取 驅動程式
-
在 「在您的應用程式程式碼中新增連線字串」 中尋找連線字串
此連線將適用於整個 Atlas 叢集,但 Metabase 需要特定的資料庫才能連線。
-
編輯連線字串以在
/
之後新增資料庫名稱mongodb+srv://metabot:metapass@metabase-magic.a5ej7.mongodb.net/sample_mflix?retryWrites=true&w=majority&appName=metabase-magic
在這裡,我們使用了 Atlas 叢集中預先載入的 sample_mflix
資料庫。
步驟 5:將 Metabase 連線到 MongoDB
您可以在設定 Metabase 時將 Metabase 連線到 MongoDB,或在 Metabase 初始化後前往管理設定 → 資料庫來連線您的資料庫。
在連線介面中,按一下「貼上連線字串」,然後貼上連線字串(記得將 <password>
預留位置取代為您的密碼!)
如果您在連線時遇到任何問題,請查看我們的 MongoDB 連線文件與連線疑難排解指南。
步驟 5:查看您的資料
一旦 Metabase 連線到您的 MongoDB,您就可以開始在 Metabase 中探索您的資料。如果您仍然處於管理員模式,請按一下右上角的退出管理員。
在左側導覽側邊欄中,前往瀏覽 → 資料庫,尋找您新新增的資料庫及其中的集合。如果您連線到 sample_mflix
資料庫,您應該會看到 Movies、Theaters、Comments 等集合。
按一下集合以查看其內容
Metabase 將以表格格式呈現 MongoDB 文件。從此檢視中,您可以開始探索資料。例如,嘗試按一下標頭並篩選資料
若要使用更複雜的文件,您可以使用 Metabase 的查詢產生器。
步驟 6:建立查詢,無需撰寫程式碼
Metabase 隨附圖形化查詢產生器,可讓您探索資料,無需撰寫任何程式碼。
若要開始使用查詢產生器,請按一下右上角的「+ 新增」按鈕,然後選取「問題」。Metabase 中的「問題」是我們所謂的查詢及其視覺化。
Metabase 將剖析 MongoDB 資料的 JSON 結構,並讓您篩選、摘要、聯結與排序個別欄位。
例如,我們可以利用 Atlas 叢集中預先載入的範例電影資料,查看人們是否對新電影的評分低於舊電影。Movies
集合包含看起來像這樣的 IMDB 資料
{
"rating": 7.4,
"votes": 9847,
"id": 439
}
讓我們建立一個查詢來計算過去 50 年中每年的 IMBD 電影評分平均值
如需查詢產生器的詳細資訊,請查看我們關於如何在查詢產生器中提問的逐步教學課程。
請注意,Metabase 會辨識「IMDB」欄位中的子欄位,並讓您依這些子欄位建立摘要。
若要在表格中預覽結果,請按一下「摘要」區塊旁邊的「播放」按鈕。
步驟 7:建立圖表
若要建立圖表,請按一下視覺化。
若要自訂圖表,請按一下左下角的設定齒輪圖示。例如,若要新增趨勢線,請切換到「顯示」索引標籤,然後開啟「趨勢線」。
若要強調評分的變化,您可以在「座標軸」索引標籤中編輯 Y 軸範圍。
看起來舊電影的評分確實比較好!
一旦您對圖表感到滿意,請按一下右上角的「儲存」按鈕,將其儲存到集合中。這樣一來,您就可以稍後重新瀏覽、分享它,並將其新增至儀表板。
步驟 8:鑽取資料
使用查詢產生器建立的圖表是互動式的:您可以精簡或鑽取資料。嘗試下列操作
- 按一下並拖曳以選取時間序列的一部分以放大;Metabase 將限制日期範圍。
- 按一下資料點,然後選取「查看這些電影」以查看特定年份的個別電影及其評分。
- 按一下資料點,然後選取「依此資料篩選」以取得所有評分較高的電影。
步驟 9:使用 MongoDB 查詢語言進行查詢
Metabase 會將您在查詢產生器中建立的每個問題轉換為 MongoDB 查詢。您可以按一下右上角的「檢視原生查詢」按鈕,在查詢產生器中查看它產生的查詢,而且您可以將任何查詢產生器問題轉換為 MongoDB 查詢。
您也可以從頭開始建立原生 MongoDB 查詢:按一下左上角的「+ 新增 → 原生查詢」,選取您的資料庫、集合,然後開始撰寫程式碼。
例如,範例電影集合在 Genres
陣列中具有關於電影類型的資料。您可以展開陣列並依類型計算平均電影執行時間
[
{ $unwind: "$genres" },
{
$group: {
_id: {
genres: "$genres",
},
avg: {
$avg: "$runtime",
},
},
},
{
$project: {
_id: false,
genre: "$_id.genres",
avg: true,
},
},
];
執行查詢並按一下左下角的「視覺化」按鈕來視覺化結果。例如,您可以將結果視覺化為長條圖
記得儲存您的問題,以便您可以將其新增至儀表板!
後續步驟
以下是您接下來可以在 Metabase 中嘗試的一些事項