更新於 2023/11/12閱讀時間約 6 分鐘

開源數據視覺化Web 應用程式Superset串連可擴展分佈式分析引擎BigQuery:啟動指南

    amp-img-attr

    應用場景:

    客戶有數據分析的需求,本身對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 是一個完全託管的企業數據倉庫,可通過機器學習、地理空間分析和商業智能等內置功能幫助您管理和分析數據。BigQuery 的無服務器架構讓您可以使用 SQL 查詢以零基礎架構管理來回答您組織的最大問題。BigQuery 可擴展的分佈式分析引擎讓您可以在幾秒鐘內查詢 TB 字節,在幾分鐘內查詢 PB 字節。

    • 安裝 Docker Engine 和 Docker Compose
    • 下載 github 的 Superset
    • 使用Docker compose 安裝
    • 登錄Superset
    • 安裝BigQuery 驅動
    • 連接到BigQuery

    1. 安裝 Docker Engine 和 Docker 

    Mac OSX

    ,其中包括 Docker 引擎和docker-compose開箱即用的最新版本。

    安裝 Docker for Mac 後,打開 Docker 的首選項面板,轉到“資源”部分並將分配的內存增加到 6GB。默認情況下僅分配 2GB 的 RAM,Superset 將無法啟動。

    2. 下載 github 的 Superset

    $ git clone 

    該命令成功完成後,您應該superset會在當前目錄中看到一個新文件夾。

    3. 使用Docker compose 安裝

    導航到您在步驟 1 中創建的文件夾:

    $ cd superset

    運行以下命令:

    $ docker-compose -f docker-compose-non-dev.yml pull
    $ docker-compose -f docker-compose-non-dev.yml up

    4. 登錄

    您的本地 Superset 實例還包括一個 Postgres 服務器來存儲您的數據,並且已經預加載了一些與 Superset 一起提供的示例數據集。您現在可以通過您的網絡瀏覽器訪問 Superset 訪問http://localhost:8088

    使用默認用戶名和密碼登錄:

    username: admin
    password: admin

    5.安裝 BigQuery 驅動

    開啟終端機

    創建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)。

    1. 通過 Google Cloud Platform 控制面板創建您的服務帳戶,為其提供對相應 BigQuery 數據集的訪問權限,並下載服務帳戶的 JSON 配置文件。
    2. 在 Superset 中,您可以上傳該 JSON 或添加以下格式的 JSON blob(這應該是您的憑證 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

    參考資料

    作者:黃翊鈜 Roy Hwang

    經歷:ML engineer , AI engineer

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.