티스토리 뷰
□ superset
오픈소스 BI (비지니스 인텔리전스 Business Intelligence) Tool인 Apache Superset 자체 개발없이 빠르게 외부에 시각화 대시보드를 제공할 수 있습니다. 또한, 대부분의 DB 커넥터 연결을 지원하며 유저 권환 관리 지원도 가능합니다. OAuth, LDAP 도 지원합니다...
□ DB 구성
superset에 연결할 DB를 구성합니다. 외부 DB를 사용해도 되지만 간단하게 테스트용도로 사용할 것이므로 Docker Container로 DB를 올리고 해당 DB에 연결을 해보겠습니다.
○ 해당 명령어로 mysql container를 실행합니다. root password는 환경변수로 넘겨줬습니다. 편하게~
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=hskimdb123 --name superset-mysql -v /home/admin/db:/var/lib/mysql mysql:5.7.30 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
○ 정상적으로 container가 올라갔다면 container로 들어가 DB를 생성해줍니다.
[admin@docker-test ~]$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7529f245453 mysql:5.7.30 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, 33060/tcp superset-mysql
root@f7529f245453:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> CREATE DATABASE data_db default CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)
mysql> use data_db
Database changed
□ superset install
공식문서에 보면 docker compose를 사용해서 설치하는 방법도 있지만, docker hub를 참고해서 docker file을 만들어 진행하였습니다. (hub.docker.com/r/apache/incubator-superset)
○ 아래와 같이 Dockerfile을 생성 후 빌드해줍니다. superset:1.0 image로 빌드해줍니다.
FROM preset/superset
# Switching to root to install the required packages
USER root
# Example: installing the MySQL driver to connect to the metadata database
# if you prefer Postgres, you may want to use `psycopg2-binary` instead
RUN pip install mysqlclient
# Example: installing a driver to connect to Redshift
# Find which driver you need based on the analytics database
# you want to connect to here:
# https://superset.incubator.apache.org/installation.html#database-dependencies
RUN pip install sqlalchemy-redshift
# Switching back to using the `superset` user
USER superset
VOLUME /app/superset
docker image build -t superset:1.0 .
○ 위에서 만들었던 superset-mysql container에 link를 걸어 docker run을 수행합니다.
docker run -d -p 8080:8080 --net=docker-test --name superset --link superset-mysql superset:1.0
○ superset 인스턴스 초기화
docker exec -it superset superset fab create-admin \
--username admin \
--firstname Superset \
--lastname Admin \
--email admin@superset.com \
--password admin
docker exec -it superset superset db upgrade
docker exec -it superset superset load_examples
docker exec -it superset superset init
○ 인스턴스 초기화까지 했다면, superset web으로 접근이 가능하고, 초기 id / pwd는 admin / admin 입니다.
○ superset 에서 DB를 연결합니다. data에 databases탭에서 추가해줍니다.
○ 아래와 같이 docker container이름의 3306포트로 설정하고 Allow Csv Upload 항목을 체크해줍니다. 해당 항목은 로컬에서 csv를 업로드할 수 있는 기능입니다. 설정을 모두 마치면 Database가 정상적으로 연결됩니다.
○ Chart 생성하기 아래처럼 Database의 data를 가지고 Chart를 생성할 수 있습니다. 단, 시간 및 날짜별로 그래프를 만들려면 table에 timestamp / dataTime 컬럼이 존재해야합니다.
'DevOps' 카테고리의 다른 글
Mairadb / postgresql SSL (0) | 2021.07.07 |
---|---|
Cloud Native Infra / MSA / Kubernetes (0) | 2021.03.25 |
NextCloud docker로 구성 (0) | 2021.02.02 |
[GCP] K8S kubespary 구성 (1) | 2020.10.31 |
[GCP] 메타데이터 / SSH 접속 (0) | 2020.10.31 |