- Python 3.8 이상
- 가상 환경
- 사용 가능한 ClickHouse Cloud 서비스와 연결 정보
- chDB를 사용해 Marimo 노트북에서 ClickHouse Cloud에 연결
- 원격 데이터셋을 쿼리하고 결과를 Pandas DataFrame으로 변환
- Marimo에서 Plotly를 사용해 데이터 시각화
- 대화형 데이터 탐색에 Marimo의 반응형 실행 모델 활용
설정
데이터셋 로드하기
Data sources를 클릭한 다음 Predefined sample data를 클릭합니다:
UK property price paid data(4GB) 카드에서 Get started를 선택합니다:
그런 다음 Import dataset을 클릭합니다:
ClickHouse는 default 데이터베이스에 pp_complete 테이블을 자동으로 생성하고, 2,892만 개의 가격 데이터 행으로 이 테이블을 채웁니다.
자격 증명이 노출될 가능성을 줄이기 위해 로컬 컴퓨터에서 Cloud 사용자 이름과 비밀번호를 환경 변수로 추가하는 것을 권장합니다.
터미널에서 다음 명령을 실행하여 사용자 이름과 비밀번호를 환경 변수로 추가하십시오:
자격 증명 설정
위의 환경 변수는 현재 터미널 세션 동안에만 유지됩니다.
영구적으로 설정하려면 셸 설정 파일에 추가하세요.
Marimo 설치
의존성 설치
데이터 탐색하기
remoteSecure 함수를 사용하면 ClickHouse Cloud에서 데이터를 손쉽게 가져올 수 있습니다.
또한 chDB가 이 데이터를 프로세스 내 Pandas 데이터 프레임으로 반환하도록 할 수 있는데, 이는 데이터를 다룰 때 편리하고 익숙한 방식입니다.
ClickHouse Cloud 데이터 쿼리
pandas.DataFrame으로 변환합니다:
chdb.query(query, "DataFrame")는 지정된 쿼리를 실행하고 결과를 Pandas DataFrame으로 반환합니다.
이 쿼리에서는 ClickHouse Cloud에 연결하기 위해 remoteSecure 함수를 사용합니다.
remoteSecure 함수는 다음을 매개변수로 받습니다:
- 연결 문자열
- 사용할 데이터베이스와 테이블 이름
- 사용자 이름
- 비밀번호
remoteSecure 함수는 원격 ClickHouse Cloud 서비스에 연결하고, 쿼리를 실행한 후 결과를 반환합니다.
데이터 크기에 따라 몇 초 정도 걸릴 수 있습니다.
이 경우 연도별 평균 가격을 반환하고, town='LONDON' 조건으로 필터링합니다.
그런 다음 결과는 df라는 변수에 DataFrame으로 저장됩니다.
데이터 시각화
대화형 마을 선택
대화형 박스플롯으로 가격 분포 살펴보기
요약
remoteSecure() 함수로 원격 ClickHouse Cloud 데이터에 쿼리하고, 그 결과를 분석 및 시각화를 위해 Pandas DataFrame으로 직접 변환하는 방법을 보여주었습니다.
chDB와 Marimo의 반응형 실행 모델을 통해 데이터 과학자는 ClickHouse의 강력한 SQL 기능을 Pandas, Plotly와 같은 익숙한 Python 도구와 함께 활용할 수 있습니다. 또한 대화형 위젯과 자동 의존성 추적 기능을 통해 탐색적 분석을 더 효율적이고 재현 가능하게 수행할 수 있습니다.