1. 程式人生 > 其它 >離線數倉(十一)

離線數倉(十一)

1Superset入門

1.1 Superset概述

  ApacheSuperset是一個開源的、現代的、輕量級BI分析工具,能夠對接多種資料來源、擁有豐富的圖示展示形式、支援自定義儀表盤,且擁有友好的使用者介面,十分易用。

1.2 Superset應用場景

  由於Superset能夠對接常用的大資料分析工具,如HiveKylinDruid等,且支援自定義儀表盤,故可作為數倉的視覺化工具。

2Superset安裝使用

  Superset官網地址http://superset.apache.org/

2.1 安裝Python環境

  Superset是由Python語言編寫的Web

應用,要求Python3.7的環境。

2.1.1 安裝Miniconda

  conda是一個開源的包、環境管理器,可以用於在同一個機器上安裝不同Python版本的軟體包及其依賴,並能夠在不同的Python環境之間切換,Anaconda包括CondaPython以及一大堆安裝好的工具包,比如:numpypandas等,Miniconda包括CondaPython

  此處,我們不需要如此多的工具包,故選擇MiniConda

  1)下載MinicondaPython3版本)

    下載地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

  2)安裝Miniconda

    (1)執行以下命令進行安裝,並按照提示操作,直到安裝完成,我安裝在hadoop103機器上

bash /opt/software/Miniconda3-latest-Linux-x86_64.sh

    (2)在安裝過程中,出現以下提示時,可以指定安裝路徑,我安裝在/opt/module/miniconda3 下

    (3)按回車之後開始下載,下載完成之後輸入yes進行初始化

    (4)重新開啟一個shell視窗,發現多了一個base,我們輸入python,發現版本是3.7.4

  3)載入環境變數配置檔案,使之生效

source ~/.bashrc

  4)取消啟用base環境

    Miniconda安裝完成後,每次開啟終端都會啟用其預設的base環境,我們可通過以下命令,禁止啟用預設base環境,然後重新開啟shell視窗,發現已經退出了base環境

conda config --set auto_activate_base false

2.1.2建立Python3.7環境

  1)配置conda國內映象(不建議配,賊慢)

(base) [atguigu@hadoop103 ~]$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
(base) [atguigu@hadoop103 ~]$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
(base) [atguigu@hadoop103 ~]$ conda config --set show_channel_urls yes

  2)建立Python3.7.7環境

conda create --name superset python=3.7.7

    conda環境管理常用命令:

      建立環境:conda create -n env_name

      檢視所有環境:conda info --envs

      刪除一個環境:conda remove -n env_name --all

  3)啟用superset環境

conda activate superset

    啟用後效果如下圖所示,我們輸入python,發現版本已經是3.7.7

#退出當前環境(我們先不要退出當前環境,因為接下來還要進行Superset的部署)
conda deactivate

2.2 Superset部署

2.2.1安裝依賴

  安裝Superset之前,需安裝以下所需依賴

sudo yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel

2.2.2安裝Superset

  1)安裝(更新)setuptoolspip

pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/

    說明:pippython的包管理工具,可以和centos中的yum類比

  2)安裝Supetset

pip install apache-superset -i https://pypi.douban.com/simple/

    說明:-i的作用是指定映象,這裡選擇國內映象

    注:如果遇到網路錯誤導致不能下載,可嘗試更換映象

pip install apache-superset --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple

  3)初始化Supetset資料庫

superset db upgrade

  4)建立管理員使用者

export FLASK_APP=superset
superset fab create-admin

    說明:flask是一個pythonweb框架,Superset使用的就是flask

  5Superset初始化

superset init

2.2.3啟動Supterset

  1)安裝gunicorn

pip install gunicorn -i https://pypi.douban.com/simple/

    說明:gunicorn是一個PythonWebServer,可以和java中的TomCat類比,就是一個web伺服器

  2)啟動Superset

    (1)確保當前conda環境為superset,及下圖所示

    (2)啟動

#前臺啟動
gunicorn --workers 5 --timeout 120 --bind hadoop103:8787  "superset.app:create_app()"
#後臺啟動
gunicorn --workers 5 --timeout 120 --bind hadoop103:8787  "superset.app:create_app()" --daemon

      --workers:指定程序個數

      --timeoutworker程序超時時間,超時會自動重啟

      --bind:繫結本機地址,即為Superset訪問地址

      --daemon:後臺執行

    (3)登入Superset

      訪問 http://hadoop103:8787,並使用2.2.2節中第4步建立的管理員賬號進行登入。

  3)停止superset

    (1)停掉gunicorn程序

ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9

    (2)退出superset環境

conda deactivate

2.2.4 superset啟停指令碼

  1)建立superset.sh檔案

vim /home/atguigu/bin/superset.sh
#!/bin/bash

superset_status(){
    result=`ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l`
    if [[ $result -eq 0 ]]; then
        return 0
    else
        return 1
    fi
}
superset_start(){
        source ~/.bashrc
        superset_status >/dev/null 2>&1
        if [[ $? -eq 0 ]]; then
            conda activate superset ; gunicorn --workers 5 --timeout 120 --bind hadoop103:8787 --daemon 'superset.app:create_app()'
        else
            echo "superset正在執行"
        fi

}

superset_stop(){
    superset_status >/dev/null 2>&1
    if [[ $? -eq 0 ]]; then
        echo "superset未在執行"
    else
        ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9
    fi
}

case $1 in
    start )
        echo "啟動Superset"
        superset_start
    ;;
    stop )
        echo "停止Superset"
        superset_stop
    ;;
    restart )
        echo "重啟Superset"
        superset_stop
        superset_start
    ;;
    status )
        superset_status >/dev/null 2>&1
        if [[ $? -eq 0 ]]; then
            echo "superset未在執行"
        else
            echo "superset正在執行"
        fi
esac

  2)加執行許可權

chmod +x /home/atguigu/bin/superset.sh

  3)測試

    (1)啟動superset

superset.sh start

    (2)停止superset

superset.sh stop

    (3)檢視superset狀態

superset.sh status

3 Superset使用

3.1 對接MySQL資料來源

3.1.1安裝依賴

conda install mysqlclient

  說明:對接不同的資料來源,需安裝不同的依賴,以下地址為官網說明:https://superset.apache.org/docs/databases/installing-database-drivers

3.1.2重啟Superset

superset.sh restart

3.1.3資料來源配置

  1Database配置

    Step1點選Data/Databases

    Step2點選DATABASE

    Step3點選填寫DatabaseSQL Alchemy URI (SQL Alchemy URI編寫規範:mysql+mysql://使用者名稱:密碼@主機名:埠號/資料庫名稱)

mysql://root:root123@hadoop102:3306/gmall_report?charset=utf8&use_unicode=true

    Step4點選TestConnection,出現“Connectionlooksgood!”提示即表示連線成功

    Step5點選ADD即可

  2Table配置

    Step1:點選Data/Datasets

    Step2:點選Data/ Datasets

    Step3:配置Table

3.2 製作儀表盤

3.2.1 建立空白儀表盤

  1)點選Dashboards/+DASHBOARDS

  2)命名並儲存

3.2.2建立圖表

  1)點選Charts/+CHART

  2)選則資料來源及圖表型別

  3)選擇何使的圖表型別

  4)建立圖表

  5)按照說明配置圖表

  6)點選RunQuery

  7)如配置無誤,可出現以下圖示

  8)命名該圖表,並儲存至儀表盤

3.2.3編輯儀表盤

  1)開啟儀表盤,點選編輯按鈕

  2)調整圖表大小以及圖表盤佈局

  3)點選下圖中箭頭,可調整儀表盤自動重新整理時間

4Superset實戰

4.1 製作地圖

  4.1.1配置Table

  4.1.2配置Chart

4.2製作桑基圖

  4.2.1配置Table

  4.2.2配置Chart

4.3製作旭日圖

  4.3.1配置Table

  4.3.2配置Chart