最近ManticoreSearchを利用したDashboard関連が動きを見せていまして
その一つにApacheSuperSetもあります。
今回はApacheSuperSetとManticoreSearchの連携を記事にました。
ただ、公式サイト(Docker)に記載のある方法では構成できずだったため、仮想OS上にUbuntu+ApacheSuperSetインストールしています。※今回も割と雑な記事ですみません。。。。
前提
OS : Ubuntu 20.04.03 LTS
Kernel: 5.4.0-155
pipenvを利用
1. パッケージインストール
sudo apt-get update
sudo apt-get -y install mariadb-server mariadb-client libmariadb-dev
sudo mysql -uroot -e "SET PASSWORD = PASSWORD('root'); FLUSH PRIVILEGES;"
2. データベース設定
ApacheSupersetで利用するDB、ユーザを定義していきます。
mysql -uroot -proot -e "CREATE DATABASE superset DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -proot -e "CREATE USER superset@localhost IDENTIFIED BY 'superset';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON superset.* TO 'superset'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"
3. pipenv構成
apt-get -y install python3-pip python3-distutils python3-dev python3-testresources
pip3 install --upgrade setuptools
pip3 install pipenv
echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc
echo "export PYTHONPATH=/root/superset" >> ~/.bashrc
source ~/.bashrc
4. supersetインストール
apt-get -y install build-essential libssl-dev libffi-dev libsasl2-dev libldap2-dev
mkdir -p ~/superset
cd ~/superset
pipenv --python 3
pipenv install apache-superset
pipenv install PyMySQL
5. Superset構成に必要なファイルの作成
cat << EOF > superset_config.py
# Superset specific config
ROW_LIMIT = 5000
BABEL_DEFAULT_LOCALE='ja'
SUPERSET_WEBSERVER_PORT = 8088
# Flask App Builder configuration
# Your App secret key
#SECRET_KEY = '\2\1thisismyscretkey\1\2\e\y\y\h'
SECRET_KEY = '331d35a802729b210bc00e3af77a29b029416fbc685420ac'
# The SQLAlchemy connection string to your database backend
# This connection defines the path to the database that stores your
# superset metadata (slices, connections, tables, dashboards, ...).
# Note that the connection information to connect to the datasources
# you want to explore are managed directly in the web UI
#SQLALCHEMY_DATABASE_URI = 'sqlite:////path/to/superset.db'
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://superset:superset@localhost:3306/superset'
# Flask-WTF flag for CSRF
WTF_CSRF_ENABLED = True
# Add endpoints that need to be exempt from CSRF protection
WTF_CSRF_EXEMPT_LIST = []
# A CSRF token that expires in 1 year
WTF_CSRF_TIME_LIMIT = 60 * 60 * 24 * 365
# Set this API key to enable Mapbox visualizations
MAPBOX_API_KEY = ''
EOF
6. Superset構築
pipenv shell
pip3 install sqlparse==0.4.3
pip3 install marshmallow_enum
export FLASK_APP=superset
superset db upgrade
superset fab create-admin --username admin --firstname admin --lastname user --email admin@localhost.localdomain --password admin
superset init
superset run -h 0.0.0.0 -p 8088 --with-threads --reload
7. ログイン
設定から「Database Connections」をクリックします。