지난 포스팅에서는 superset 4.x 버전에 대해서 간단하게 알아봤어요.
이번에는 간단한 설치부터, 적용한 설정값들에 대해서 다뤄볼게요.
0. 들어가기 전에
예상 독자는 아래와 같습니다.
1. superset 4.x를 docker-compose로 실행하고 싶은 분
2. docker-compose 설정값에서 알아야하는 것
1. superset 설치하기
- 공식 문서: https://superset.apache.org/docs/installation/docker-compose/
공식 문서를 보면 설명이 잘 나와있는데, 약간 불친절해요.
실제로 k8s를 이용해서 설치/운영하는게 훨씬 쉽습니다
하지만 docker-compose를 이용해 테스트하는 경우도 필요하니 알아두면 좋습니다.
git clone --depth=1 https://github.com/apache/superset.git
#1: 로컬 깃 소스 기준
docker compose up --build
# 2: 브랜치 기준
docker compose -f docker-compose-non-dev.yml up
# 3: 태그 기준
export TAG=4.0.1 docker compose -f docker-compose-image-tag.yml up
2. superset 설정값 바꾸기
- 이 부분이 중요한데. 없는 파일들을 만들면
오버라이딩 되는 방식으로 구성이 되어있어요
설정 파일을 실행하면
test용 파일을 읽어서 덮어씌워요
예시를 통해서 설명할게요
1. docker image의 entrypoint 실행
2. superset_config.py라는 설정 파일을 실행
3. superset_config.py에서 superset_config_docker.py가 있으면 실행
[의견]
superset_config_docker.py 파일은 존재하지가 않아요
그래서 눈치껏 알아서 잘 설정해야해요.
비슷한 예로 `requirements-local.txt` 도 있습니다.
3. 설정 값 예시
제 파일은 superset_config_docker.py는 아래와 같습니다.
$ cat superset_config_docker.py
print('Loaded superset_config_docker.py')
# Feature flags
FEATURE_FLAGS = {
"ENABLE_TEMPLATE_PROCESSING": True,
"DASHBOARD_RBAC": True,
}
# Landing page customization
from flask import redirect, g
from flask_appbuilder import expose, IndexView
from superset.utils.core import get_user_id
class SupersetIndexView(IndexView):
@expose("/")
def index(self):
if not g.user or not get_user_id():
return redirect("/login")
return redirect("/dashboard/list")
FAB_INDEX_VIEW = f"{SupersetIndexView.__module__}.{SupersetIndexView.__name__}"
# Theme overrides
THEME_OVERRIDES = {
"borderRadius": 16,
"colors": {
"primary": { "base": '#804479', },
"secondary": { "base": 'green', },
"grayscale": { "base": '#e46268', }
}
}
```
* FLAG 값을 켜줬어요. 4.x로 넘어오면서,
이전 버전의 설정값들은 많이 정리 또는 기본으로 들어갔더라고요
# Feature flags
# https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md
FEATURE_FLAGS = {
"ENABLE_TEMPLATE_PROCESSING": True, --jinja_template
"DASHBOARD_RBAC": True --대시보드 권한, 이건 권한 이야기할 때 다시
}
* 랜딩 페이지가 home이 아니라 dashboard/list로 변경하고 싶었어요
(권한 관련 세팅하다보면 우회되는 버그들이 많아서 변경했어요)
# Landing page customization
from flask import redirect, g
from flask_appbuilder import expose, IndexView
from superset.utils.core import get_user_id
class SupersetIndexView(IndexView):
@expose("/")
def index(self):
if not g.user or not get_user_id():
return redirect("/login")
return redirect("/dashboard/list")
FAB_INDEX_VIEW = f"{SupersetIndexView.__module__}.{SupersetIndexView.__name__}"
* 컬러 테마를 좀 변경했어요
# Theme overrides
THEME_OVERRIDES = {
"borderRadius": 16,
"colors": {
"primary": { "base": '#804479', },
"secondary": { "base": 'green', },
"grayscale": { "base": '#e46268', }
}
}
이 밖에도 로고를 바꾸는 등의 여러 설정들이 있어요.
4. 마치며
다음 글에서는 권한 설정을 어떻게 해야하는지, 로고는 어떻게 바꾸는지 등에 대해서 정리해볼게요
참고
https://mightytedkim.tistory.com/227
https://superset.apache.org/docs/installation/docker-compose/
'Data > Superset' 카테고리의 다른 글
Superset) 너 왜이렇게 버전업이 빠르니? (7개월 만에 2.1에서 4.0) (0) | 2024.11.24 |
---|---|
superset) trino 연결해서 그래프 그리기 (0) | 2023.04.23 |
Supserset) 슈퍼셋 들어보셧나요? 사용 후기 듣고 가세요! (filter 조건 위치 변경해서 full scan 방지) (1) | 2023.03.26 |