應用場景:
客戶有數據分析的需求,本身對tableau有使用經驗也比較熟悉,但是當下公司是沒有訂閱tableau服務來進行數據分析,日後如果要轉移伺服器也比較麻煩,tableau的訂閱是以公司為單位,如果使用Superset,一來superset是開源專案,無費用的產生,二來轉移系統也是比較方便。
之所以會選擇Bigquery做為查詢引擎,主要還是日後遷移至雲端的預備方便,無伺服器的資料倉儲系統,高擴充性與成本的考量,免費方案有 10 GB 的儲存空間以及每月 1 TB 的查詢量。
Superset 簡介
Apache Superset是一個數據瀏覽和可視化Web 應用程序。Superset特性: 支持幾乎所有主流的數據庫,包括MySQL、PostgresSQL、Oracle、SQL Server、SQLite、SparkSQL 等,並深度支持Druid。豐富的可視化展示,支持自定義創建dashboard。
Druid:
是用Java編寫的面向列的開放源代碼分佈式數據存儲。Druid旨在快速獲取大量事件數據,並在數據之上提供低延遲查詢。
Druid這個名字來自許多角色扮演遊戲中變形的Druid類,以反映系統的體系結構可以改變以解決不同類型的數據問題。
Druid通常用於BI OLAP應用程序,以分析大量的實時和歷史數據。
BigQuery 是一個完全託管的企業數據倉庫,可通過機器學習、地理空間分析和商業智能等內置功能幫助您管理和分析數據。BigQuery 的無服務器架構讓您可以使用 SQL 查詢以零基礎架構管理來回答您組織的最大問題。BigQuery 可擴展的分佈式分析引擎讓您可以在幾秒鐘內查詢 TB 字節,在幾分鐘內查詢 PB 字節。
Mac OSX
安裝 Docker for Mac,其中包括 Docker 引擎和docker-compose
開箱即用的最新版本。
安裝 Docker for Mac 後,打開 Docker 的首選項面板,轉到“資源”部分並將分配的內存增加到 6GB。默認情況下僅分配 2GB 的 RAM,Superset 將無法啟動。
$ git clone
https://github.com/apache/superset.git
該命令成功完成後,您應該superset
會在當前目錄中看到一個新文件夾。
導航到您在步驟 1 中創建的文件夾:
$ cd superset
運行以下命令:
$ docker-compose -f docker-compose-non-dev.yml pull
$ docker-compose -f docker-compose-non-dev.yml up
您的本地 Superset 實例還包括一個 Postgres 服務器來存儲您的數據,並且已經預加載了一些與 Superset 一起提供的示例數據集。您現在可以通過您的網絡瀏覽器訪問 Superset 訪問http://localhost:8088
。
使用默認用戶名和密碼登錄:
username: admin
password: admin
開啟終端機
創建requirements-local.txt
# From the repo root...
touch ./docker/requirements-local.txt
添加在上面步驟中選擇的驅動程序:
echo "pybigquery" >> ./docker/requirements-local.txt
使用內置的新驅動程序重建本地映像:
docker-compose build --force-rm
Docker 鏡像的重建完成後(這需要幾分鐘),您可以使用以下命令重新啟動:
docker-compose up
6.連接到BigQuery
在 Superset 中添加新的 BigQuery 連接時,您需要添加 GCP 服務帳戶憑據文件(作為 JSON)。
# 這是範例
{
"type": "service_account",
"project_id": "...",
"private_key_id": "...",
"private_key": "...",
"client_email": "...",
"client_id": "...",
"auth_uri": "...",
"token_uri": "...",
"auth_provider_x509_cert_url": "...",
"client_x509_cert_url": "..."
}
進入Google Cloud 控制台後
依序點選
IAM與管理->服務帳戶->點選服務帳戶->
金鑰->新增金鑰->建立新的金鑰->Json
即可下載Json file
回到Superset,點選Databese
點選 +DATABASE
選擇BigQuery
上傳Json file
接下來您就可以在Superset 操作BigQuery了
測試是否可以操作BigQuery的Public Dataset
參考資料
https://superset.apache.org/docs/databases/bigquery/
作者:黃翊鈜 Roy Hwang
經歷:ML engineer , AI engineer