Presto와 Apache Superset을 Docker로 설정하는 실습 가이드
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 데이터 엔지니어, BI 전문가, 개발자
- 중간~고급 수준 (Docker 및 데이터 툴 사용 경험 필요)
핵심 요약
- Docker Compose를 사용하여 Presto와 Apache Superset을 통합한 분석 스택 구성
- MySQL 및 MongoDB 데이터 소스를 Presto 카탈로그에 연결하는 방법
- Superset에 Presto 드라이버(
pyhive[presto]
) 설치 및 데이터베이스 연결 설정 docker-compose up -d
명령어로 모든 서비스 자동 시작
섹션별 세부 요약
1. 프로젝트 구조 및 Docker Compose 설정
docker-compose.yml
파일에서 Superset, PostgreSQL, MySQL, MongoDB, Presto 서비스 정의- Superset 환경 변수 설정 (
SUPERSET_SECRET_KEY
,PYTHONUNBUFFERED
) - PostgreSQL 데이터베이스 컨테이너 설정 (
POSTGRES_DB
,POSTGRES_USER
) - Presto 컨테이너에 MySQL/MongoDB 카탈로그 파일 마운트
2. Presto 카탈로그 파일 생성
- MySQL 연결:
mysql.properties
파일에서connector.name=mysql
,connection-url=jdbc:mysql://mysql:3306
설정 - MongoDB 연결:
mongodb.properties
파일에서connector.name=mongodb
,mongodb.seeds=mongodb:27017
설정 - 카탈로그 파일 경로:
./presto/etc/catalog/
3. 서비스 실행 및 상태 확인
docker-compose up -d
명령어로 모든 컨테이너 자동 시작 (3~5분 소요)docker ps
명령어로 컨테이너 상태 확인- Superset:
http://localhost:8088/
, Presto:http://localhost:8081/
접속
4. Superset에 Presto 연결
- Superset 컨테이너에 접속:
docker exec -it superset bash
- Presto 드라이버 설치:
pip install "pyhive[presto]"
- Superset 재시작:
docker restart superset
- 데이터베이스 연결:
Settings -> Database Connections -> Database
에서 Presto 연결 확인
5. SQL 쿼리 실행 및 검증
- Superset에서 MySQL 및 MongoDB를 카탈로그로 인식
- Presto 쿼리 실행:
SELECT * FROM mysql.testdb.table
- 실행 결과 확인: 쿼리 성공 시 MySQL/MongoDB 데이터 표시
결론
- Presto와 Superset 통합 시
docker-compose.yml
파일의 서비스 정의와 카탈로그 설정이 핵심 - Superset에서 Presto 연결 시
pyhive[presto]
패키지 설치 필수 - 서비스 실행 후
docker ps
명령어로 상태 확인 및 포트(8088
,8081
) 접속 테스트