離線數倉(十一)
第1章Superset入門
1.1 Superset概述
ApacheSuperset是一個開源的、現代的、輕量級BI分析工具,能夠對接多種資料來源、擁有豐富的圖示展示形式、支援自定義儀表盤,且擁有友好的使用者介面,十分易用。
1.2 Superset應用場景
由於Superset能夠對接常用的大資料分析工具,如Hive、Kylin、Druid等,且支援自定義儀表盤,故可作為數倉的視覺化工具。
第2章Superset安裝及使用
Superset官網地址:http://superset.apache.org/
2.1 安裝Python環境
Superset是由Python語言編寫的Web
2.1.1 安裝Miniconda
conda是一個開源的包、環境管理器,可以用於在同一個機器上安裝不同Python版本的軟體包及其依賴,並能夠在不同的Python環境之間切換,Anaconda包括Conda、Python以及一大堆安裝好的工具包,比如:numpy、pandas等,Miniconda包括Conda、Python
此處,我們不需要如此多的工具包,故選擇MiniConda。
1)下載Miniconda(Python3版本)
下載地址: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)安裝(更新)setuptools和pip
pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
說明:pip是python的包管理工具,可以和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
5)Superset初始化
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:指定程序個數
--timeout:worker程序超時時間,超時會自動重啟
--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資料來源配置
1)Database配置
Step1:點選Data/Databases
Step2:點選+DATABASE
Step3:點選填寫Database及SQL Alchemy URI (SQL Alchemy URI編寫規範:mysql+mysql://使用者名稱:密碼@主機名:埠號/資料庫名稱)
mysql://root:root123@hadoop102:3306/gmall_report?charset=utf8&use_unicode=true
Step4:點選TestConnection,出現“Connectionlooksgood!”提示即表示連線成功
Step5:點選ADD即可
2)Table配置
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)點選下圖中箭頭,可調整儀表盤自動重新整理時間
第4章 Superset實戰
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