Business Intelligence를 위한 Superset(+ 도커)

92·2023년 3월 2일
0
post-thumbnail

0. 아파치 슈퍼셋이란?

숙박 공유 서비스로 친숙한 에어비엔비에서 만들어 오픈소스로 제공한 데이터 시각화 툴입니다.

  • 장점
  1. 무료로 사용가능하고,
  2. 다양한 시각화를 지원하며,
  3. 데이터 시각화를 위한 UX가 직관적이고,
  4. 다양한 데이터 베이스를 연계 지원 합니다.

  • 단점
  1. 데이터 소스별로 권한이 묶여있어 관리하기가 쉽지 않고,
  2. ORG개념이 없어 내/외부용 데이터셋 혹은 대시보드 관리가 힘듭니다.

1. Install

1.1. In Local (맥북 M1 pro 기준)

  1. 도커를 설치합니다.

    Install Docker on MAC

    docker 설치 및 관리(명령어)

  2. 환경설정 시 아래와 같이 체크표시를 하고 설치를 완료합니다.

  1. dockterminal을 열고 git clone을 해줍니다.

    git clone https://github.com/apache/superset.git
  2. superset 폴더로 이동

    cd superset
  3. 마스터 브랜치에서 작업할 때, 아래의 명령어를 통해 도커 이미지를 가져옵니다.

    docker-compose -f docker-compose-non-dev.yml pull
  4. 위의 명령어가 실행이 완료되면, docker-compose를 통해 superset을 설치합니다.

    docker-compose -f docker-compose-non-dev.yml up

  1. http://localhost:8088 을 웹에 입력하면 본인의 로컬호스트로 슈퍼셋에 입장 할 수 있습니다.

    • 기본 사용자 이름과 비밀번호로 로그인합니다.

    username: admin

    password: admin

2. BigQuery 연결

2.1 Database Connect

  • superset에 로그인 후, ‘+’ 버튼 혹은 ‘Settings’에서 Database Connect를 클릭합니다.
  • 어떤 포인트에 입력하는지 돕기 위해 검은색 박스 표시해뒀습니다.


  • superset에서 지원하는 데이터베이스의 종류에 따라 사전에 파이썬 패키지 설치를 필요로 합니다.
    링크 : Superset Install Database Drivers
    !! 여기서, Bigquery에 접근하기 위해 아래의 드라이버를 설치합니다.
    ```bash
    docker ps # 사용중인 도커확인
    docker exec -it {superset APP} /bin/bash
    
    pip install sqlalchemy-bigquery
    
    # 설치가 완료되면,(꼭 하지 않아도 됨/ 만약 설치했는데 작동이 안된다면 재시작할 것) 
    docker-compose restart
    ```
    
    - 무한 dquote에 빠진 경우, 해결법은 간단하게 “ 를 입력하고 엔터키를 쳐주시면 됩니다.

2.2 Bigquery 연결 (+ 인증)

bigquery://{project_id} 만 입력하면, 아래와 같은 BigQuery Error를 만나게 됩니다.

⚠️ ERROR: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see [https://cloud.google.com/docs/authentication/getting-started](https://cloud.google.com/docs/authentication/getting-started)
  • Advanced에서 Security에 아래와 같이 키값을 추가해주고 데이터 베이스 연결을 해야합니다.
  • 성공화면

해당 링크 (빅쿼리 + 슈퍼셋 연동)에 키값을 받는 방법이 있습니다. 핵심만 알려 주니 읽어보고 키값 생성 후 사용하세요.

3. DashBoard 활용

3.1 Dataset 생성

저는 인허가데이터를 활용하였는데,지방행정인허가데이터에서 데이터를 무료로 받을 수 있습니다.


3.2 차트 추가

  • 차트 추가화면은 아래와 같이 할 수 있습니다.
  • 인허가받은 사업자의 카운터차트를 만들었고, 예시를 위해 간단하게 가게의 사업자 번호로 해당 카운트 해보겠습니다.
biz_number not in ('***-**-*****', '***-**-*****')
  • 슈퍼셋은 태블로와 비슷하게 마우스로 조작할 수 있으며, 위와 같은 명령어를 아래의 사진처럼 커스텀SQL을 지원합니다.

  • Create Chart 버튼을 누르면 아래와 같이 카운터가 나타납니다.

  • 저장 후 대시보드에 추가를 해줍니다.

  • 최종화면

4. Superset Trouble shooting

4.1 docker-compose 명령어

docker-compose down # 도커컴포즈 시동끄기
git pull origin master # 현재 설치한 방식은 깃 슈퍼셋 마스터이므로, 폴더 업데이트와 같으 특정 업무 진행 후
docker-compose up # 도커컴포즈 시동켜기

4.2 수동 업데이트

pip install apache-superset --upgrade
superset db upgrade
superset init

4.3 JVM Error

⚠️ SQL: No JVM shared library file (libjvm.so) found. Try setting up the JAVA_HOME environment variable properly.

  • 위와 같은 에러를 보게 된다면, 아래와 같은 명령어로 해결 가능합니다.
docker exec -it {superset_APP} /bin/bash
apt-get update
sudo apt install default-jdk -y
profile
{ "ME" : "DataEngineer, DataAnalyst" }

0개의 댓글