1. 시스템구조를 알아야할까요?

- 사실 냅다 구성만해서 사용하려면 딱히 알 필요가 없다.

- 왜냐면 설치 스크립트 한 방이면 걍 잘 돌아가게 구축이 되니까!

- 그러나 컨테이너형식이 아닌 직접 구축한 데이터베이스를 쓰려면 시스템 구조를 알아야 바꿀 수 있다.

- 그리고 실무에서는 아무튼 돌아감으로 해결되지 않는 많은 문제들이 발생한다...

- 하여튼 시스템구조를 살펴보고 각 기능에 대해 간단하게 짚고 넘어가자

 

 

 

2. 시스템 구조 설명

Redash의 아키텍처 다이어그램

- 공식 사이트에 다이어그램이나 기능에 대한 정확한 가이드를 적어두지 않아서 포럼을 뒤져서 찾았다.

(1) Nginx

- 리버스 프록시로 Redash 서버에 https를 적용하기 쉽게 해준다

(2) Redash server

- 플라스크로 띄우는 실질적인 대시보드 서버다

- 쉽게 이야기 하면 대시보드 웹페이지를 띄워주는 서버다

(3) postgreSQL

- postgreSQL 데이터베이스를 띄우는 서버로 운영하는 리대시의 모든 정보가 저장된다

- 유저, 쿼리, 시각화 등의 값들이 저장되는 곳이라고 생각하면 된다

(4) scheduler

- 대시보드에서 발생하는 잡(job)의 큐(queue)로 관리해주는 곳이다

(5) redis

- 스케쥴러에서 수행할 일(task)를 수행할 워커 서버로 보내기 전에 redis 서버에서 모니터링한다

- 정확히는 모르겠는데 adhoc task와 scheduled task를 관리하는 기능인 것 같다

(6) worker

- 각 워커에서 수행할 task를 실질적으로 수행한다

- 일시적인 쿼리를 실행하거나 주기적으로 돌아갈 작성된 쿼리 수행과 관련된 서버이다.

 

* 참고한 포럼

https://discuss.redash.io/t/what-are-the-individual-services-in-redash-actually-for/9675

 

What are the individual services in Redash actually for?

In Redash docker-compose files, we have been used to the following services: Server Adhoc-worker scheduled_worker scheduler Worker What are these services actually doing? The flask application which runs the redash under the hood looks to be the server. Bu

discuss.redash.io

 

 

3. 어... 뭔 말인지 모르겠어요

- 사실 도커기반으로 구축하는데 모든 기능을 세세하게 이해할 필요는 없습니다!

- 이런 이야기는 그만하고 다음엔 실질적으로 간단하게 구축을 해봅시다.

1. 왜 Redash를 사용하나요?

- 데이터를 분석한 결과의 수치나 시각화 결과를 보여주는 방식 중에 대시보드를 구성하는 방법이 있다.

- 세상에 유료로 대시보드를 쓸 수 있는 방법이 많지만 어느정도 직접 운영을 할 수 있다면 좋은 오픈 소스를 써도 된다.

- 파이썬에서 dash / voila / streamlit라는 대시보드를 만드는 라이브러리들이 존재하지만 직접 대시보드 구성을 코딩해야하는 번거로운이 있다.

- 그러니까 만들어진 걸 쉽게 운용할 수 있다면 잘 만들어 놓은 것을 쓰는 것이 좋고, 오픈소스 대시보드 프레임워크 중에서 Redash를 사용해보고자 한다.

 

 

 

2. Redash가 왜 좋아요?

Redash에서 사용할 수 있는 데이터베이스/데이터소스의 일부

- 그냥 우리가 알고있는 데이터베이스는 다 연결해서 사용할 수 있다.

- 데이터 베이스의 쿼리 작업을 Redash 내에서 할 수 있어서 쿼리 작성과 데이터 분석 결과 확인과 배치에 용이 하다.

- plotly 기반의 시각화 기능을 쉽게 사용할 수 있고, 능력껏 추가해서 사용할 수 있다.

- python으로 데이터를 전처리 해서 쿼리 결과 처럼 사용할 수 있어서 쿼리 보다 자유롭고 다양한 데이터 분석 결과를 대시보드에 바로 적용할 수 있다.

- 단순하게 운영만 한다면 docker 기반의 설치 파일로 쉽게 Redash 사용 환경을 구축할 수 있다.

 

 

 

3. Redash의 단점은요?

- 어플리케이션의 백엔드와 프론트엔드를 수정하는 것이 쉽지 않아서 사실상 Redash를 커스텀하려면 개발 지식이 필요하다.

- 사용자가 모두 작성된 쿼리를 볼 수 있으므로 보수적인 보안 환경에는 도입이 어려울 수 있다.

- 메일 시스템 구축, 세팅 값 변경시 docker-compose를 사용한 서버 재구성 등의 상용 프로그램을 사용하는 것보다 운용 측면에서 알아야하는 것들이 부수적으로 발생한다.

 

 

 

4. 그래도 Redash를 써봅시다.

- 대시보드 구축, 쿼리사용, 도커 사용을 한 번에 공부할 수 있습니다.

- 그리고 docker 기반의 구축은 스크립트 파일 하나로 간단하게 되니까 쉽게 시작할 수 있습니다!

+ Recent posts