자체 호스팅 ClickHouse 또는 ClickHouse Cloud에서 직접 사용해 볼 수 있습니다. 아직 계정이 없다면 무료 ClickHouse Cloud 체험을 시작할 수 있습니다.
데이터셋 불러오기
- 데이터를 ClickHouse에 삽입하지 않고도 원본 위치에서 바로 쿼리할 수 있습니다. 어떤 모습인지 확인할 수 있도록 몇 개의 행을 가져오겠습니다:
- ClickHouse에 이 데이터를 저장할
amazon_reviews라는 이름의 새MergeTree테이블을 정의하겠습니다:
- 다음
INSERT명령은s3Cluster테이블 함수를 사용하며, 이를 통해 S3 파일을 클러스터의 노드에 분산해 병렬로 읽을 수 있습니다.
default이므로 위와 같이 실행할 수 있습니다. 자가 관리형 서버에서는 default를 클러스터 이름으로 바꾸십시오. 단일 서버를 사용한다면 대신 s3 테이블 함수를 사용하고, 첫 번째 인수를 생략해 호출이 URL로 시작하도록 하십시오.
URL에 와일드카드를 사용하여 패턴과 일치하는 모든 리뷰 파일을 삽입합니다.
- 이 쿼리는 오래 걸리지 않으며, 평균적으로 초당 약 300,000행을 처리합니다. 5분 정도 지나면 모든 행이 삽입된 것을 확인할 수 있습니다:
- 데이터가 얼마나 많은 공간을 사용하고 있는지 확인해 보겠습니다:
예시 쿼리
- 몇 가지 쿼리를 실행해 보겠습니다. 다음은 데이터셋에서 가장 유용하다고 평가된 리뷰 상위 10개입니다:
이 쿼리는 성능 향상을 위해 프로젝션을 사용합니다.
- 다음은 Amazon에서 리뷰 수가 가장 많은 제품 상위 10개입니다:
- 다음은 각 제품의 월별 평균 리뷰 평점입니다(실제 Amazon 면접 질문입니다!):
- 다음은 제품 카테고리별 총 투표 수입니다.
product_category가 프라이머리 키(primary key)에 포함되어 있으므로 이 쿼리는 빠르게 실행됩니다:
- 이제 리뷰에서 “awful” 이라는 단어가 가장 자주 등장하는 제품을 찾아보겠습니다. 이는 상당히 큰 작업입니다. 단어 하나를 찾기 위해 1억 5,100만 개가 넘는 문자열을 파싱해야 합니다:
runnable
- 이번에는 리뷰에서 awesome을 검색하는 것만 빼고, 동일한 쿼리를 다시 실행할 수 있습니다:
runnable