티스토리 뷰

DevOps

Superset / Chart

김한성 2021. 3. 15. 12:51

□ 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
댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31