안녕하세요 😉
유유자적한 개발자 유로띠 입니다 😀
👏👏👏👏
이번 포스팅에서는
✅ Metabase 란?
✅ Metabase 설치
✅ Metabase mysql 연동
에 대해서 알아보겠습니다
Metabase
✅ Metabase 란?
Metabase는 기업 내 데이터 분석과 시각화를 용이하게 하는 오픈 소스 비즈니스 인텔리전스(BI) 도구입니다.
주로 기술적 배경이 없는 사용자도 쉽게 데이터를 탐색하고 시각화할 수 있도록 설계되었으며, 다양한 데이터베이스와 연동하여 실시간 인사이트를 제공합니다.
- 데이터 탐색 및 쿼리
- 비기술 사용자 지원: 드래그 앤 드롭 인터페이스로 필터링, 집계, 조인 등 기본 쿼리를 생성할 수 있습니다.
- SQL 지원: 고급 사용자는 직접 SQL 쿼리를 작성하여 복잡한 분석을 수행할 수 있습니다.
- 시각화 및 대시보드
- 다양한 차트 형식: 막대 그래프, 원형 차트, 테이블 등으로 데이터를 표현하며, 결과를 대시보드에 통합할 수 있습니다.
- 인터랙티브 대시보드: 실시간 데이터를 기반으로 한 대시보드를 생성하고 팀원과 공유할 수 있습니다.
- 데이터 소스 통합
- 광범위한 호환성: MySQL, PostgreSQL, MongoDB, Google BigQuery, Snowflake 등 15종 이상의 데이터베이스 및 웨어하우스와 연결 가능합니다.
- CSV/엑셀 파일 지원: 파일 기반 데이터도 직접 업로드하여 분석할 수 있습니다.
✅ docker를 이용한 설치
로컬 docker가 있다면 설치가 간편합니다.
로컬에 설치한 도커를 실행합니다.
$ docker pull metabase/metabase:latest
latest: Pulling from metabase/metabase
1f3e46996e29: Pull complete
3c7ff0155cbe: Pull complete
8c8a997c7658: Pull complete
198aafda557c: Pull complete
2a2a9ee36b98: Pull complete
42eeed7b11c4: Pull complete
0f767eab7ae3: Pull complete
Digest: sha256:2effc7da989f298312e005430af27a5668e34f77f7a82e5f56504131f14b32c0
Status: Downloaded newer image for metabase/metabase:latest
docker.io/metabase/metabase:latest
먼저 metabase 이미지를 받아옵니다.
metabase 이미지를 정상적으로 받아 온 것을 확인할 수 있습니다.
이제 한번 실행해보겠습니다.
docker run -d -p 3000:3000 --name metabase metabase/metabase
명령어를 실행해도 되고 docker ui에서 실행하셔도 됩니다.
만약 3000 port를 사용 중이라면 다른 port로 변경 가능합니다.
docker run -d -p 3001:3000 --name metabase metabase/metabase
✅ Metabase 접속
설정한 url로 접근하면 metabase 초기 화면이 나타납니다.
몇 가지 설정을 마치고 나면 다음과 같이 Metabase 화면이 나타납니다.
Metabase - mysql 연동
✅ 로컬 MySQL 설정 확인
데이터 분석을 위해 로컬의 mysql을 연동해 보도록 하겠습니다.
MacOS인 경우 my.cnf의 설정을 변경합니다. (windows의 경우 my.ini)
howbrew로 mysql을 설치한 경우 경로는 다음과 같습니다.
/usr/local/etc/my.cnf
OR
/opt/homebrew/etc/my.cnf # Apple Silicon (M1, M2, M3) Mac
MySQL의 설정 파일을 열어서 bind-address를 0.0.0.0으로 변경합니다.
[mysqld]
bind-address = 0.0.0.0
변경 후 MySQL을 재시작합니다.
sudo systemctl restart mysql # Ubuntu
brew services restart mysql # Mac (Homebrew)
✅ MySQL 사용자 권한 설정
Docker 컨테이너에서 접근하려면, 사용자가 원격 접속할 수 있도록 MySQL에서 권한을 부여해야 합니다.
MySQL에 접속한 후 다음 명령어를 실행합니다.
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
드디어 MySQL 설정은 완료하였습니다.
✅ Metabase에서 MySQL 연동
Docker 네트워크에서는 로컬 PC를 host.docker.internal(Windows/Mac) 또는 172.17.0.1(Linux)로 접근할 수 있습니다.
연결이 성공적으로 완료되면 Metabase 관리자 화면에 데이터베이스가 있는 걸 확인할 수 있습니다.
마치며
docker를 이용하면 간단한 설치가 가능하며
mysql 설치도 외부 허용만 하면 간단히 연동이 되는 걸 확인하였습니다.
