데브허브 | DEVHUB | Apache Superset: EP2 - 🏛️ Superset 내부 구조 - 어떻게 동작할까?Apache Superset: EP2 - 🏛️ Superset 내부 구조 - 어떻게 동작할까?
- 아파치 슈퍼셋은 프론트엔드, 백엔드, 메타데이터 데이터베이스, 외부 데이터 소스라는 네 가지 핵심 레이어로 구성됩니다. 🏗️
- 프론트엔드는 React 기반으로 노코드 드래그 앤 드롭 대시보드 생성 및 SQL 랩 기능을 제공하며, 반응형 UI를 자랑합니다. 💻
- 백엔드는 Flask 애플리케이션으로 인증, RBAC, 쿼리 실행, 메타데이터 관리 및 RESTful API를 처리하며, 파이썬 기반의 확장성을 가집니다. 🐍
- 슈퍼셋은 데이터를 직접 저장하지 않고, SQLAlchemy를 통해 외부 데이터 소스에 연결하여 데이터를 가져옵니다. 🔗
- 메타데이터 데이터베이스(PostgreSQL/MySQL)는 설정, 차트/대시보드 정보, 사용자 권한 및 캐시된 쿼리 결과를 저장하여 시각화 로직과 데이터 소스를 분리합니다. 🗄️
- 전체 아키텍처는 로드 밸런서, Gunicorn 웹 서버, Celery 워커, Redis 캐시, 메타데이터 DB로 구성되어 수평 확장이 가능합니다. 🌐
- Redis는 쿼리 결과 캐싱과 Celery 태스크 큐 역할을 하여 비동기 쿼리 실행을 지원하고 UI 응답성을 높입니다. 🚀
- Celery 워커는 장시간 실행되는 쿼리, CSV 내보내기, 대시보드 새로고침 등 백그라운드 작업을 처리하여 웹 UI가 블로킹되지 않도록 합니다. ⏳
- SQLAlchemy를 활용한 쿼리 실행 레이어는 다양한 데이터베이스에 연결하며, 쿼리 캐싱을 통해 성능을 크게 향상시킵니다. ⚡
- 보안 레이어는 RBAC, OAuth, SAML, LDAP 등 다양한 인증 플러그인을 지원하며, 데이터셋, 대시보드, 행 수준의 세분화된 접근 제어를 제공하여 엔터프라이즈 환경에 적합합니다. 🔒
- 일반적인 프로덕션 배포는 Gunicorn, PostgreSQL, Redis 클러스터, Celery 워커, Nginx 리버스 프록시 및 SSL 터미네이션을 포함합니다. 🏭