[SUPERSET] 시놀로지 NAS에서 Apache Superset 구축하기🚀

2025. 1. 7. 19:27·Docker

Apache Superset Banner

Apache Superset으로 데이터 시각화 환경을 구축하고 IBM i DB2와 연동하는 완벽 가이드

들어가기전 삽질공유🛠️

우선 도커컴포즈를 통해서도 슈퍼셋 설치가 가능하고 파이썬을 통해서도 설치가 가능합니다 해당 내용은 슈퍼셋 공식 홈페이지에 들어가시면 doc에 자세히 설명되어 있습니다.
도커 컴포즈로 설치하지 않은 이유는 도커 컴포즈로 설치후 실행하면 우측위에 빨간글로 개발환경이라는 표시가 나옵니다 저는 회사에서 BI툴로 실제 운영배포하기 위해 구축하므로 아파치에서 도커허브에 공식 배포한 이미지를 다운받아 프로덕션 환경으로 제공했습니다.

들어가기 앞서 그동안 메타베이스 슈퍼셋 그라파나 등등 여러가지 BI 및 시각화 도구를 사용해 봤지만 그때마다 문제가 되는건 저희 회사의 DB인 IBM I db2 (as400) 이였습니다. 해당 DB는 대부분의 오픈소스및 기타 솔루션에서 드라이버를 기본적으로 제공하지 않으며 깃헙 커뮤니티에서도 사용자를 찾기 힘들어 오픈소스에 해당 DB를 연결하려면 스택오버플로우 및 해당 깃헙의 이슈 커뮤니티 등 발품팔아가며 연동해야합니다.

그래도 언제나 한줄기의 빛은 있어서 많은 검색을 하면 이미 저와같은 고민을 한 유저들과 소통하며 해결이 가능합니다.

먼저 이번 프로젝트를 해결하는데 도움 받은 깃헙 입니다
해당 이슈는 저와 아주 유사했고 기본적으로 제공되는 ibm_db_sa 드라이버는 ibm i 를 지원하지 않습니다 해서
이 깃헙에 올라와 있는 드라이버를 pip 로 설치하시면 연결 가능합니다.

🛠 환경 준비

준비물

  • 시놀로지 NAS
  • PuTTY
  • Docker 설치됨
  • IBM i DB2 접속 정보
  • IBM i Access Client Solutions 설치 파일

PuTTY로 SSH 접속하기

1️⃣ PuTTY 설정

Host Name: [NAS IP 주소]
Port: 22
Connection type: SSH

2️⃣ 접속 명령어

$ ssh admin@[NAS-IP]

💡 TIP: 자주 사용하는 접속 정보는 PuTTY에서 저장해두면 편리합니다.


🐳 Superset 설치

Docker 이미지 다운로드

# 최신 Superset 이미지 가져오기
$ docker pull apache/superset

# 이미지 확인
$ docker images
REPOSITORY          TAG       IMAGE ID       CREATED        SIZE
apache/superset     latest    1234567890ab   2 days ago     2.1GB

컨테이너 실행

# Superset 컨테이너 실행
$ docker run -d \
    -p 8088:8088 \
    --name superset \
    apache/superset

🔍 확인사항: docker ps 명령어로 컨테이너가 정상적으로 실행중인지 확인하세요.


🔧 IBM i ODBC 드라이버 설치

1. IBM i Access Client Solutions 다운로드

  1. IBM i Access Client Solutions 페이지 방문
  2. Linux Application Package 다운로드
  3. 압축 해제 후 x86_64 폴더 내 debian 패키지 확인
    # 예: ibm-iaccess-1.1.0.28-1.0.amd64.deb

2. 도커 컨테이너에 설치 파일 복사

# 호스트에서 컨테이너로 .deb 파일 복사
$ docker cp ibm-iaccess-1.1.0.28-1.0.amd64.deb superset:/tmp/

3. ODBC 드라이버 설치

# 컨테이너 내부 진입
$ docker exec -it superset bash

# 필수 패키지 설치
$ apt-get update
$ apt-get install unixodbc
$ apt-get install -f

# IBM i Access 패키지 설치
$ dpkg -i /tmp/ibm-iaccess-1.1.0.28-1.0.amd64.deb

# 설치 확인
$ dpkg -l | grep ibm-iaccess

⚠️ 주의: ODBC 드라이버 설치는 반드시 Superset 초기 설정 전에 완료해야 합니다!


⚙️ 초기 설정

1. 관리자 계정 설정

# 컨테이너 접속
$ docker exec -it superset bash

# DB 마이그레이션
$ superset db upgrade

# 관리자 계정 생성
$ superset fab create-admin \
    --username admin \
    --firstname Admin \
    --lastname Admin \
    --email admin@example.com \
    --password admin

⚠️ 초기에 관리자 계정이 기본 생성인줄 알았으나 없어서 당황했습니다 (도커 컴포즈는 자동생성됩니다 admin/admin)

2. 초기화 작업

# 샘플 데이터 로드 (선택사항)
$ superset load_examples

# Superset 초기화
$ superset init

🔌 DB2 연동

필수 패키지 설치

$ pip install ibm-db-sa
$ pip install sqlalchemy-ibmi

데이터베이스 연결 설정

  1. Superset 웹 UI 접속 (http://[NAS-IP]:8088)
  2. Settings > Database Connections
  3. "+ Database" 클릭
  4. 연결 정보 입력:
Database Name: [DB명]
SQLAlchemy URI: ibmi://[유저]:[패스워드]@[호스트]

🎯 연결 테스트: "Test Connection" 버튼으로 연결을 검증하세요. 저는 저 연결 URI를 찾는것만 해도 어마어마한 노력이 있었습니다...


🚨 문제 해결

자주 발생하는 문제

문제 해결 방법
ODBC 드라이버 오류 dpkg -l로 설치 상태 재확인
연결 오류 방화벽 설정 확인
권한 문제 DB2 사용자 권한 검토
포트 충돌 포트 변경 또는 충돌 앱 종료

보안 체크리스트

  • 관리자 비밀번호 변경
  • 정기적인 업데이트 적용
  • 불필요한 포트 차단

📝 마무리

지금까지 시놀로지 NAS에서 Apache Superset을 설치하고 IBM i DB2와 연동하는 방법을 알아보았습니다. 이 과정을 통해 강력한 데이터 시각화 환경을 구축하실 수 있습니다.

다음 단계

  • 대시보드 생성
  • 차트 만들기
  • 사용자 권한 관리
  • 데이터 소스 추가

💬 질문이나 피드백이 있으신가요?
댓글로 남겨주시면 답변드리도록 하겠습니다.


'Docker' 카테고리의 다른 글

[Docker] React + Springboot + Docker 배포 세팅  (2) 2024.11.25
'Docker' 카테고리의 다른 글
  • [Docker] React + Springboot + Docker 배포 세팅
뚤떡이
뚤떡이
프로그래밍을 알아가며 저와 함께 성장하는 블로그 입니다
  • 뚤떡이
    뚤떡이의 발개벗긴개발
    뚤떡이
  • 전체
    오늘
    어제
    • 분류 전체보기 (73)
      • Docker (2)
      • 자바 (29)
        • start (10)
        • calcu (4)
        • process (7)
      • 플러터 (1)
      • 알고리즘 (12)
        • 개념 (2)
        • 구현 (5)
        • 백준 (0)
        • 프로그래머스 (5)
      • 이클립스 (4)
        • 초기설정 (4)
      • SQL (5)
      • IT 잡동사니 (10)
      • 개발 관련 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    #apachesuperset #시놀로지 #db2 #데이터시각화 #기술블로그
    스팸메일 #메일보안 #gophish #it보안 #오픈소스
    #프로젝트
    #개발일지
    GLPI
    윈도우 크롬 원격
    #python
    #python #개발일지 #번역 #메모리최적화 #websocket #redis #비동기프로그래밍
    #자동화
    #electron
    크롬 원격 데스크톱
    #번역
    MAC 크롬 원격
    요구사항 정의서
    개발일지 #프로젝트후기 #gpt4 #번역 #자동화 #python #electron
    크롬 원격
    IT자산관리
    시놀로지
    synology
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
뚤떡이
[SUPERSET] 시놀로지 NAS에서 Apache Superset 구축하기🚀
상단으로

티스토리툴바