1. 概述
1.1 版本
FineBI版本號 | JAR包日期 |
6.0 | - |
1.2 應用場景
在 FineBI中連結 Google BigQuery 中的資料時,當資料量為千萬級,用伺服器資料集直接呼叫 BigQuery 的 API 會出現效能問題,本章將介紹使用 CData 和 Simba 的 JDBC 驅動在 FineBI 中連結 Google BigQuery。
2. CData 驅動
2.1 驅動準備
2.1.1 驅動下載
安裝驅動 | 下載地址 |
根據不同系統環境 Windows/Cross-Platform Unix/Linux/Mac,選擇合適的安裝包進行下載。 |
2.1.2 驅動安裝
1)将下載好的安裝包進行驅動安裝。
安裝後的目錄結構如下圖所示:
注1:CData驅動有一個月試用期,後期繼續使用需要收費,本章節即使用試用版進行測試。
注2:readme.html檔案中包含驅動使用說明,可進行參考。
2)點選「管理系統」>「資料連結管理」>「驅動管理」,新建一個驅動,命名為cdata.jdbc.googlebigquery.GoogleBigQueryDriver
3)點選「上傳檔案」,選中\CData JDBC Driver for Google BigQuery 2023\lib下的jar包。上傳成功後,驅動處選中cdata.jdbc.googlebigquery.GoogleBigQueryDriver 。
2.2 收集連結資訊
1)在驅動安裝目錄下打開命令提示字元,運行 java -jar cdata.jdbc.googlebigquery.jar,可開啟 CData 提供的測試連結視窗。
2)進行參數配置,如下表所示:
配置項 | 值 |
---|---|
AuthScheme | OAuth |
ProjectId | 對應的“專案ID” |
InitiateOAuth | GETANDREFRESH |
3)點選 Test Connection 測試連結此時將會自動彈出使用者 OAuth 授權流程網頁,需要同意授權以儲存賬戶資訊,才能成功進行連結。詳情可參考文檔:https://cdn.cdata.com/help/DBG/jdbc/pg_oauthembeddedapp.htm
注:身分驗證的方式包含使用者帳號和服務帳號,本次測試使用使用者帳號進行驗證。
4)測試連結成功後,複制介面下方 Connection String 的連結資訊(在FineBI中連結時需要用到),例如: jdbc:cdata:googlebigquery:InitiateOAuth=GETANDREFRESH;ProjectId=NameOfProject;DatasetId=NameOfDataset
3. Simba驅動
3.1 驅動準備
3.1.1 驅動下載
安裝驅動 | 下載地址 |
根據不同系統環境Windows/Cross-Platform Unix/Linux/Mac,選擇合適的安裝包進行下載。 |
3.1.2 驅動安裝
1)解壓下載的驅動壓縮包。
2)點選「管理系統」>「資料連結管理」>「驅動管理」,新建一個驅動,命名為SimbaJDBCDriverforGoogleBigQuery
3)點選「上傳檔案」,選中解壓後資料夾下,除slf4j-api-1.7.36.jar外的所有檔案。上傳成功後,驅動處選中com.simba.googlebigquery.jdbc.Driver 。
3.2 收集連結資訊
參照 Installation and Configuration Guide 獲取連結URL。
3.2.1 使用谷歌使用者帳戶(Using a Google User Account)
3.2.2 使用谷歌服務帳戶(Using a Google Service Account)
1、獲取專案ID(ProjectID)
打開 Google官方文檔,按照操作創建一個新專案。
注:已有對應專案可跳過此步驟。
1)打開 Service accounts page,建立一個新專案,如下圖所示:
2)按實際情況填寫並點擊建立專案,從此頁面獲取對應的專案ID(ProjectID)。
2、獲取電子郵件地址(OAuthServiceAcctEmail)
創建一個服務帳戶,按步驟填寫對應的信息,授予該帳戶BigQuery管理員的角色權限,並從此頁面獲取對應的電子郵件地址(OAuthServiceAcctEmail),如下圖所示:
注:若專案內已有擁有BigQuery管理員角色權限的帳戶,可跳過此步驟。
3、獲取金鑰檔案(ServiceKeyFile)
點擊創建的服務帳戶的電子郵件地址,選擇「金鑰>新增金鑰>建立新的金鑰」,如下圖所示:
選中需要的金鑰類型,點擊建立,金鑰檔案會自動下載至本機,如下圖所示:
4. 具體連結步驟
1)以管理者身分登入 FineBI ,點選「管理系統>資料連結>資料連結管理」,點選「建立資料連結」。
2)點選「其他>其他JDBC」如下圖所示:
注:如果非管理者使用者想要配置資料連結,需要管理者給其分配管理系統下資料連結節點的權限,具體操作請查看 資料連結權限
4.1 Cdata方式
1)驅動切換為自訂,選擇自己的驅動,然後輸入 2.2 節的連結資訊。如下圖所示:
Cdata配置項:
設定項 | 值 | 備註 |
驅動 | cdata.jdbc.googlebigquery.GoogleBigQueryDriver | 此處填寫2.1.2節中添加的驅動,可手動輸入 |
資料連結URL | 粘貼2.2節中所複制的Connection String連結資訊 | 範例:jdbc:cdata:googlebigquery:InitiateOAuth=GETANDREFRESH;ProjectId=NameOfProject;DatasetId=NameOfDataset |
使用者名稱/密碼 | 輸入實際資料庫的帳號和密碼即可 | - |
獲取連結前檢驗 | 否 | 預設為是,需手動改為否 |
注: CData 功能穩定性較高,身分驗證在驅動 jar 包裏完成,使用者只需要在 FineBI 中配置資料連結即可。
4.2 Simba方式
4.2.1 使用谷歌使用者帳戶(Using a Google User Account)
1)驅動切換為自訂,選擇自己的驅動,然後輸入 3.2.1 節的連結資訊。如下圖所示:
Simba配置項:
設定項 | 值 | 備註 |
驅動 | com.simba.googlebigquery.jdbc.Driver | 此處選擇3.1.2節中添加的驅動,可手動輸入 |
資料連結URL | 粘貼3.2.1節中所獲取的連結資訊 | 範例:jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=civil-sentry-309307;OAuthType=1 |
使用者名稱/密碼 | 輸入實際資料庫的帳號和密碼即可 | - |
獲取連結前檢驗 | 否 | 預設為是,需手動改為否 |
2)點選「測試連結」後,會自動跳轉至Google帳戶登入頁,登入后選擇「允許」。
3)返回資料連結頁面,若連結成功則「儲存」該連結。
4.2.2 使用谷歌服務帳戶(Using a Google Service Account)
1)驅動切換為自訂,選擇自己的驅動,然後輸入 3.2.2 節的連結資訊。如下圖所示:
Simba配置項:
設定項 | 值 | 備註 |
驅動 | com.simba.googlebigquery.jdbc.Driver | 此處選擇3.1.2節中添加的驅動,可手動輸入 |
資料連結URL | 粘貼3.2.2節中所獲取的連結資訊 | 範例: jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=doc-project-431101;OAuthType=0;OAuthServiceAcctEmail=doc-simba@doc-project-431101.iam.gserviceaccount.com;OAuthPvtKeyPath=C:/Users/Lauren/Downloads/doc-project-431101-fbc864ef47a2.json; |
獲取連結前檢驗 | 否 | 預設為是,需手動改為否 |
2)點選「測試連結」,連結成功後點擊「儲存」。