Apache Superset Embedding - URL Parameter 설정

Record For a Better Life ·2023년 8월 20일
0

Env : Superset 2.0.1

현재 데이터 시각화를 위해 슈퍼셋을 docker에 빌드해 둔 상태다.
단순히 DB에 있는 데이터들을 시각화하지 않고, 내 어플리케이션에 임베딩한 뒤에 조건문에 사용될 값들을 url parameter로 넘겨주어 결과를 웹에서 iframe 내에 띄우려고 한다.

우선 대쉬보드를 공유할 때 url parameter를 받아와서 조건문으로 주기 위해, 설정을 바꾸어주어야 했다.
이는 Jinja template를 기본적으로 사용하고 있기 때문에, 아래와 같은 코드를 설정파일에 추가해주어야 한다.

공식문서를 읽어보면 아래와 같다.

https://superset.apache.org/docs/installation/sql-templating/

  1. 기존의 config.py가 import할 새로운 설정파일로 superset_config.py를 생성한다.
  2. ENABLE_TEMPLATE_PROCESSING을 활성화한다.
"ENABLE_TEMPLATE_PROCESSING": True
  1. python 또는 Security_config에 대한 path를 설정해주기만 하면 된다.
    export SUPERSET_CONFIG_PATH=/superset_config.py

    반영이 잘 되지 않았을 경우 아래와 같은 커맨드와 docker container를 재실행하는 등의 방식을 사용해본다.

    superset db upgrade

    superset init

이렇게 환경변수도 넣고 재실행도 마쳤으나 여전히 Jinja template을 사용하지 못하는 경우가 있다. 그런 경우 superset_config.py를 직접 생성하기보다 config.py를 수정하는 방식도 가능하다.

제대로 반영되었는지 확인하는 방법은 아래와 같다.

  • select '{{ current_user_id() }}' 이 user_id를 성공적으로 반환한다.
  • SQL lab를 이용할 때 Parameters라는 버튼이 보인다.

    이런식으로 뜬다면 실패한 것이다. {{ current_user_id()}} 가 그대로 출력되는 것이 아닌, id 값이 나와야 한다.
profile
모든 것을 기록하는 벨로그 💻

0개의 댓글