Google BigQuery
若要新增資料庫連線,請按一下右上角的齒輪圖示,然後導覽至管理設定 > 資料庫 > 新增資料庫。
先決條件
您需要有一個 Google Cloud Platform 帳戶,其中包含您想要在 Metabase 中使用的專案。請參閱 Google Cloud Platform 文件,以了解如何建立及管理專案。此專案應具有 BigQuery 資料集,供 Metabase 連線。
Google Cloud Platform:建立服務帳戶和 JSON 檔案
您首先需要一個 服務帳戶 JSON 檔案,Metabase 可以使用該檔案來存取您的 BigQuery 資料集。服務帳戶適用於非人類使用者(例如 Metabase 等應用程式)驗證(我是誰?)並授權(我可以做什麼?)其 API 呼叫。
若要建立服務帳戶 JSON 檔案,請依照 Google 關於設定服務帳戶以存取 BigQuery 資料集的說明文件操作。以下是基本流程
-
建立服務帳戶。從您的 Google Cloud Platform 專案主控台,開啟左側的主要側邊欄選單,前往 IAM 與管理員區段,然後選取服務帳戶。主控台將列出現有的服務帳戶(如果有的話)。在螢幕頂端,按一下 + 建立服務帳戶。
-
填寫服務帳戶詳細資料。命名服務帳戶,並新增描述(服務帳戶 ID 將在您新增名稱後填入)。然後按一下建立按鈕。
-
授予服務帳戶存取此專案的權限。您需要將角色新增至服務帳戶,Metabase 才能取得檢視資料集和對其執行查詢的權限。請務必將以下角色新增至服務帳戶
- BigQuery 資料檢視者
- BigQuery 中繼資料檢視者
- BigQuery 工作使用者 (與 BigQuery 使用者不同)
如需 BigQuery 中角色的詳細資訊,請參閱 Google Cloud Platform 的說明文件。
- 建立金鑰。將角色指派給服務帳戶後,按一下建立金鑰按鈕,然後為金鑰類型選取 JSON。JSON 檔案將下載到您的電腦。
金鑰只能下載一次。如果您刪除金鑰,則需要使用相同的角色建立另一個服務帳戶。
設定
您可以隨時編輯這些設定。只需記得儲存您的變更。
顯示名稱
資料庫在 Metabase 介面中顯示的名稱。
專案 ID
每個 BigQuery 資料集都會有一個 專案 ID。您可以透過 Google Cloud Console 找到此 ID。如果您不確定在哪裡找到專案 ID,請參閱 Google 關於取得資料集資訊的說明文件。
輸入專案 ID 時,請省略專案 ID 前置字元。例如,如果您的 ID 是
project_name:project_id
,則僅輸入project_id
。
服務帳戶 JSON 檔案
JSON 檔案包含您的 Metabase 應用程式存取 BigQuery 資料集所需的憑證,如您新增至服務帳戶的角色所定義。如果您需要新增其他角色,則必須建立另一個服務帳戶、下載 JSON 檔案,然後將檔案上傳至 Metabase。
資料集
您可以指定要同步和掃描哪些 BigQuery 資料集。選項如下
- 全部
- 僅限這些…
- 除了這些以外的所有…
BigQuery 資料集類似於結構描述。請務必輸入您的資料集名稱(例如
marketing
),而非您的表格名稱 (marketing.campaigns
)。
假設您有三個資料集:foo、bar 和 baz。
若要同步所有三個資料集,請選取僅限這些…,然後輸入
foo,bar,baz
若要根據字串比對同步資料集,請使用 *
萬用字元
- 若要同步 bar 和 baz,請選取僅限這些…,然後輸入字串
b*
。 - 若只要同步 foo,請選取除了這些以外的所有…,然後輸入字串
b*
。
請注意,僅支援 *
萬用字元;您無法使用其他特殊字元或規則運算式。
使用 Java 虛擬機器 (JVM) 時區
我們建議您保持關閉此選項,除非您在此資料的許多或大多數查詢中進行手動時區轉換。
在查詢中包含使用者 ID 和查詢雜湊
這對於稽核和偵錯可能很有用,但會阻止 BigQuery 快取結果,並可能增加您的成本。
針對簡單探索重新執行查詢
如果使用者想要在套用任何摘要或篩選條件選取項目之前按一下執行(播放按鈕),請將此選項關閉。
預設情況下,當您從摘要選單中選擇分組選項或從鑽取選單中選擇篩選條件時,Metabase 會立即執行查詢。如果您的資料庫速度緩慢,您可能會想要停用重新執行,以避免每次按一下都載入資料。
選擇 Metabase 同步和掃描的時間
開啟此選項以管理 Metabase 用於讓您的資料庫保持在最新狀態的查詢。如需更多資訊,請參閱同步和掃描資料庫。
資料庫同步
如果您已選取選擇同步和掃描發生的時間 > 開啟,您將可以設定
- 同步的頻率:每小時(預設)或每天。
- 執行同步的時間,以執行 Metabase 應用程式的伺服器時區為準。
掃描篩選條件值
Metabase 可以掃描此資料庫中每個欄位中存在的值,以便在儀表板和問題中啟用核取方塊篩選條件。這可能是一個相當耗費資源的程序,尤其是在您擁有非常龐大的資料庫時。
如果您已選取選擇同步與掃描發生的時間 > 開啟,您會在掃描篩選條件值下方看到以下選項
- 定期排程讓您可以按照符合資料庫變更速率的頻率執行掃描查詢。時間設定為執行 Metabase 應用程式伺服器的時區。對於小型資料庫,或具有經常更新的相異值的表格來說,這是最佳選項。
- 如果您希望掃描查詢依需求執行,僅在新增篩選條件小工具時是個絕佳選項。將此選項開啟表示 Metabase 只會在儀表板或 SQL 問題中新增篩選條件時,掃描並快取所用欄位的值。
- 永不,如果需要我會手動執行適用於資料庫非常龐大,或幾乎沒有新增值的資料庫。使用「立即重新掃描欄位值」按鈕執行手動掃描,並更新您的篩選條件值。
定期重新指紋識別資料表
定期重新指紋識別會增加資料庫的負載。
將此選項開啟,以便在 Metabase 每次執行同步時,掃描值的範例。
指紋識別查詢會檢查每個欄位的前 10,000 列,並使用該資料來估計每個欄位有多少個相異值、數值和時間戳記欄位的最小值和最大值等等。如果您將此選項保持關閉,Metabase 只會在設定期間指紋識別您的欄位一次。
將 Metabase 連接到 Google 雲端硬碟資料來源
您可以透過 BigQuery 將 Metabase 連接到 Google 雲端硬碟資料來源。雖然需要一些設定,但基本上您要做的是在 BigQuery 中建立資料集,並在該資料集中新增一個外部表格,指向 Google 試算表。這對於將 CSV 上傳到 Google 試算表,然後使用 Metabase 分析和視覺化資料非常有用。
若要連接到儲存在 Google 雲端硬碟 (例如 Google 試算表) 中的資料來源,請先確認您已完成上述步驟,包括
- 在 Google Cloud Platform 中建立專案、
- 新增 BigQuery 資料集,以及
- 建立服務帳戶。
與服務帳戶共用您的 Google 雲端硬碟來源
在檢視您的雲端硬碟檔案時 (例如,包含已上傳 CSV 檔案的 Google 試算表),按一下右上角的共用按鈕。在標示為新增使用者或群組的文字方塊中,貼上您的服務帳戶的電子郵件,您可以在 Google Cloud Console 的服務帳戶頁面上找到該電子郵件。
該電子郵件地址看起來會像這樣:service-account-name@your-project-name.iam.gserviceaccount.com
,其中您的服務帳戶和專案名稱會相應填入。
從下拉式選單中選擇檢視者,取消勾選通知使用者選項,然後按一下共用。
在 BigQuery 中建立指向您的 Google 雲端硬碟來源的外部表格
如果您還沒有 BigQuery 資料集,請建立一個。
接下來,使用 Google Cloud Console,在您的 BigQuery 資料集中建立外部表格,指向您的 Google 試算表。
請務必指定正確的 Drive URI 和檔案格式。
如果您尚未執行此操作,請將您的 Metabase 連接到您的 BigQuery。
完成這些步驟後,您將能夠在 Metabase 中使用 Google 雲端硬碟來源作為資料,來提問和建立儀表板。
使用舊版 SQL
從 0.30.0 版開始,Metabase 會告知 BigQuery 將 SQL 查詢解譯為標準 SQL (GoogleSQL)。如果您偏好使用舊版 SQL,您可以透過在查詢開頭包含 #legacySQL
指令來告知 Metabase 這麼做,例如
#legacySQL
SELECT *
FROM [my_dataset.my_table]
疑難排解
如果您在 BigQuery 連線方面遇到問題,您可以查看此疑難排解指南,其中涵蓋 BigQuery 問題,這個指南涵蓋資料倉儲連線問題,或瀏覽 Metabase 的討論論壇,看看是否有人遇到並解決了類似的問題。
延伸閱讀
閱讀其他Metabase 版本的文件。