Real-Time Market AnalyticsClickHouse Workshops

07 내 데이터로 실시간 대시보드 만들기

컨테이너로 실행되는 대시보드를 내 노트북에서 내 ClickHouse Cloud 서비스에 연결하고, 필터를 바꿀 때 쿼리 시간과 스캔한 행 수가 어떻게 변하는지 지켜봅니다.

속도를 체감하고 싶나요? 여러분의 ClickHouse Cloud 서비스에 있는 forex 테이블을 쿼리하는 작은 대시보드를 노트북에서 실행해 보세요. 인터랙티브 캔들스틱 및 거래량 차트를 그리고, 필터를 바꿀 때마다 ClickHouse 쿼리 시간과 스캔된 행 수를 보여줍니다 — 보통 몇 밀리초입니다. 그게 핵심입니다: 통화 쌍을 바꾸고 날짜 범위를 끌어당겨 보면 데이터가 즉시 돌아옵니다.

왜 Docker인가요?

이 앱은 자체적으로 버전이 고정된 Python과 함께 Docker 컨테이너 안에서 실행되므로, 여러분이 어떤 Python을 설치했는지 — 설치했는지 여부조차 — 상관없습니다. Docker만 있으면 됩니다.

1단계 — Docker 설치

아직 없다면 Docker Desktop을 설치하고 실행하세요. 아래에서 사용할 docker compose 명령이 포함되어 있습니다. 실행 중인지 확인하세요:

docker --version

2단계 — 리포지터리 클론

워크숍 리포지터리를 클론하고 대시보드 폴더로 이동하세요:

git clone https://github.com/ClickHouse/ClickHouse_Demos.git
cd ClickHouse_Demos
cd "$(git rev-parse --show-toplevel)/workshop_public/RTA-mini-workshop/dashboard"

3단계 — 연결 정보 입력

템플릿을 실제 .env 파일로 복사한 뒤, 아무 텍스트 편집기로 열어 여러분의 서비스 정보를 채우세요:

cp .env.example .env
# now edit .env and fill in the values below

이 값들은 Cloud 콘솔의 Connect(왼쪽 메뉴) → HTTPS에서 찾을 수 있습니다:

변수입력할 값
CLICKHOUSE_HOST예: abc123.ap-southeast-1.aws.clickhouse.cloud — https:// 없이, 포트 없이
CLICKHOUSE_PORT8443
CLICKHOUSE_USERdefault
CLICKHOUSE_PASSWORD서비스를 만들 때 설정한 비밀번호
CLICKHOUSE_DATABASEforex가 있는 데이터베이스(보통 default)
CLICKHOUSE_SECUREtrue

4단계 — 실행

컨테이너를 빌드하고 시작합니다. 첫 실행에서는 베이스 이미지를 내려받고 의존성을 설치합니다 (1~2분). 그 다음부터는 즉시 뜹니다.

docker compose up --build

포트 8000에서 수신 대기 중이라는 메시지가 보이면 브라우저에서 http://localhost:8000을 여세요. 나중에 Ctrl-C로 중지합니다.

이런 것들을 해보세요

currency pair를 바꾸거나 date range를 끌어당기거나 quick range 버튼을 눌러보세요 — 변경할 때마다 ClickHouse에 다시 쿼리하고, 오른쪽 상단 배지에 새 쿼리 시간과 스캔한 행 수가 표시됩니다. 범위를 하나의 통화 쌍으로 좁히면 몇 천 행, 몇 밀리초로 떨어지는 것을 보세요 — 모듈 4.7에서 본 것과 똑같이 sort key가 일하는 것입니다.

데이터가 보이지 않나요?

빨간 배너는 앱이 ClickHouse에 접근할 수 없다는 뜻입니다. .env의 값을 다시 확인하세요 — 호스트에 https://와 포트가 없어야 하고, 포트는 8443 — 그리고 forex 테이블이 로드되어 있는지 확인하세요. 전체 설정 안내와 문제 해결은 대시보드의 README.md에 있습니다.

이 페이지의 내용

Track your progress?

Optional. We email a link to confirm your address; progress records once you open it.

Please use your work email address, not a personal one.

Progress tracking also requires accepting the current Terms of Service in Privacy settings.

KO