- 가상 환경
- 사용 가능한 ClickHouse Cloud 서비스와 연결 정보
- chDB를 사용하여 Jupyter 노트북에서 ClickHouse Cloud에 연결하기
- 원격 데이터셋을 쿼리하고 결과를 Pandas DataFrame으로 변환하기
- 분석을 위해 클라우드 데이터와 로컬 CSV 파일을 결합하기
- matplotlib를 사용해 데이터를 시각화하기
설정
데이터 소스를 클릭하십시오. 그런 다음 Predefined sample data를 클릭하십시오.
영국 부동산 실거래가 데이터(4GB) 카드에서 Get started를 선택하십시오.
그런 다음 Import dataset를 클릭하십시오.
ClickHouse는 default 데이터베이스에 pp_complete 테이블을 자동으로 생성하고, 가격 포인트 데이터 2,892만 행을 테이블에 채웁니다.
자격 증명이 노출될 가능성을 줄이기 위해 로컬 머신에서 Cloud 사용자 이름과 비밀번호를 환경 변수로 추가하는 것을 권장합니다.
터미널에서 다음 명령을 실행하여 사용자 이름과 비밀번호를 환경 변수로 추가하십시오:
위의 환경 변수는 현재 터미널 세션에서만 유지됩니다.
영구적으로 설정하려면 셸 설정 파일에 추가하십시오.
localhost:8888에서 Jupyter 인터페이스가 표시됩니다.
새 노트북을 만들려면 File > New > Notebook을 클릭하세요.
커널을 선택하라는 메시지가 표시됩니다.
사용 가능한 Python 커널 중 아무 것이나 선택하면 되며, 이 예시에서는 ipykernel을 선택합니다:
빈 셀에 다음 명령을 입력하면 원격 ClickHouse Cloud 인스턴스에 연결하는 데 사용할 chDB를 설치할 수 있습니다:
데이터 살펴보기
remoteSecure 함수를 사용하면 ClickHouse Cloud에서 데이터를 쉽게 가져올 수 있습니다.
chDB가 이 데이터를 프로세스 내에서 Pandas DataFrame으로 반환하도록 할 수 있으며, 이는 데이터를 다룰 때 편리하고 익숙한 방식입니다.
다음 쿼리를 작성하여 ClickHouse Cloud 서비스에서 UK price paid 데이터를 가져오고 pandas.DataFrame으로 변환하십시오:
chdb.query(query, "DataFrame")는 지정된 쿼리를 실행하고 결과를 Pandas DataFrame으로 터미널에 출력합니다.
이 쿼리에서는 remoteSecure 함수를 사용해 ClickHouse Cloud에 연결합니다.
remoteSecure 함수는 다음을 매개변수로 받습니다:
- 연결 문자열
- 사용할 데이터베이스와 테이블 이름
- 사용자 이름
- 비밀번호
remoteSecure 함수는 원격 ClickHouse Cloud 서비스에 연결해 쿼리를 실행하고 결과를 반환합니다.
데이터 크기에 따라 몇 초 정도 걸릴 수 있습니다.
이 예시에서는 연도별 평균 가격대를 반환하고, town='LONDON' 조건으로 필터링합니다.
그런 다음 결과는 df라는 변수에 DataFrame으로 저장됩니다.
df.head는 반환된 데이터의 처음 몇 개 행만 표시합니다:
새 셀에서 다음 명령을 실행하여 컬럼의 타입을 확인하십시오:
date는 ClickHouse에서는 Date 유형이지만, 결과 DataFrame에서는 uint16 유형이라는 점에 유의하십시오.
chDB는 DataFrame을 반환할 때 가장 적절한 유형을 자동으로 추론합니다.
이제 데이터를 익숙한 형태로 사용할 수 있으므로, 시간에 따라 런던의 부동산 가격이 어떻게 변했는지 살펴보겠습니다.
새 셀에서 다음 명령을 실행하여 matplotlib로 런던의 시점별 가격을 보여 주는 간단한 차트를 만드세요:
file 테이블 엔진을 사용하면 로컬 머신의 파일을 직접 읽을 수 있습니다.
새 셀에서 다음 명령을 실행하여 로컬 .csv 파일로 새 DataFrame을 만드십시오.
한 단계에서 여러 소스 읽기
한 단계에서 여러 소스 읽기
하나의 단계에서 여러 소스로부터 읽는 것도 가능합니다. 이를 위해 아래와 같이
JOIN을 사용하는 쿼리를 사용할 수 있습니다.요약
remoteSecure() 함수로 원격 ClickHouse Cloud 데이터를 쿼리하고, file() 테이블 엔진으로 로컬 CSV 파일을 읽고, 결과를 분석 및 시각화를 위해 직접 Pandas DataFrame으로 변환하는 방법을 보여주었습니다.
chDB를 사용하면 데이터 과학자는 ClickHouse의 강력한 SQL 기능을 Pandas 및 matplotlib 같은 익숙한 Python 도구와 함께 활용할 수 있으므로, 여러 데이터 소스를 결합해 종합적인 분석을 손쉽게 수행할 수 있습니다.
런던에서 활동하는 많은 데이터 과학자에게 당장 내 집이나 아파트를 마련하는 일은 쉽지 않을 수 있지만, 적어도 자신을 시장 밖으로 밀어낸 그 시장을 분석할 수는 있습니다!