ClickHouse OSS 퀵 스타트
이 퀵 스타트 튜토리얼에서는 몇 가지 간단한 단계로 OSS ClickHouse 환경을 준비하는 방법을 안내합니다. ClickHouse CLI
clickhousectl을 사용하여 ClickHouse를 설치하고, ClickHouse 서버를 시작한 다음, 서버에 연결해 테이블을 생성하고, 데이터를 삽입한 후 SELECT 쿼리를 실행합니다.
ClickHouse CLI 설치 \
ClickHouse CLI(clickhousectl)를 사용하면 로컬 ClickHouse 버전을 설치 및 관리하고, 서버를 실행하며, 쿼리를 수행할 수 있습니다. 다음 명령어로 설치하십시오:
편의를 위해 chctl 별칭도 자동으로 생성됩니다.
데이터 삽입
ClickHouse에서 익숙한 INSERT INTO TABLE 명령어를 사용할 수 있지만, MergeTree 테이블에 데이터를 삽입할 때마다 ClickHouse 스토리지에 파트라고 하는 단위가 생성된다는 점을 이해하는 것이 중요합니다. 이 파트들은 이후 ClickHouse에 의해 백그라운드에서 병합됩니다.
ClickHouse에서는 백그라운드 프로세스에서 병합해야 하는 파트 수를 최소화하기 위해, 한 번에 많은 양의 행(수만 건 또는 수백만 건)을 일괄 삽입하는 것을 권장합니다.
이 가이드에서는 아직 해당 부분은 다루지 않겠습니다. 다음 명령어를 실행하여 테이블에 몇 개의 행을 삽입하십시오:
직접 데이터 삽입 [#insert-own-data}
다음 단계는 ClickHouse에 데이터를 수집하는 것입니다. 데이터 수집을 위한 다양한 테이블 함수와 통합 기능을 제공합니다. 아래 탭에서 몇 가지 예시를 확인하거나, ClickHouse와 연동되는 기술의 전체 목록은 통합 페이지를 참조하십시오.
- S3
- GCS
- 웹
- 로컬
- PostgreSQL
- MySQL
- ODBC/JDBC
- 메시지 큐
- 데이터 레이크
- 기타
s3 테이블 함수를 사용하여
S3에서 파일을 읽을 수 있습니다. 이는 테이블 함수로, 즉 결과가 다음과 같이 사용할 수 있는
테이블로 반환된다는 의미입니다:
SELECT쿼리의 소스로 사용합니다(임시 쿼리를 실행하고 데이터는 S3에 그대로 둘 수 있음). 또는...- 결과 테이블을
MergeTree테이블에 삽입합니다(데이터를 ClickHouse로 옮길 준비가 되었을 때)
임시 쿼리의 예는 다음과 같습니다:
데이터를 ClickHouse 테이블로 옮기는 예시는 다음과 같습니다. 여기서
nyc_taxi는 MergeTree 테이블입니다:
S3를 ClickHouse와 함께 사용하는 방법에 대한 자세한 정보와 다양한 예시는 AWS S3 문서 페이지 모음에서 확인하실 수 있습니다.
AWS S3에서 데이터를 읽는 데 사용되는 s3 테이블 함수는
Google Cloud Storage의 파일에도 사용할 수 있습니다.
예시:
s3 테이블 함수 페이지에서 자세한 내용을 확인하십시오.
로컬 파일을
읽으려면 file 테이블 엔진을 사용하십시오. 간단히 진행하려면 파일을 user_files 디렉터리로 복사하십시오
(user_files 디렉터리는 ClickHouse 바이너리를 다운로드한 디렉터리에 있습니다).
참고로 ClickHouse는 많은 행으로 이루어진 배치를 분석하여 컬럼 이름과 데이터 형식을 추론합니다. ClickHouse가 파일 이름만으로 파일 형식을 판별하지 못하면 두 번째 인수로 지정할 수 있습니다:
자세한 내용은 file 테이블 함수
문서를 참조하십시오.
ClickHouse는 모든 ODBC 또는 JDBC 데이터 소스의 데이터를 읽을 수 있습니다:
자세한 내용은 odbc 테이블 함수 및
jdbc 테이블 함수 문서 페이지를
참조하십시오.
메시지 큐의 데이터를 해당 테이블 엔진을 사용해 ClickHouse로 스트리밍할 수 있습니다. 예를 들면 다음과 같습니다:
- Kafka:
Kafka테이블 엔진을 사용해 Kafka와 통합합니다 - Amazon MSK: Amazon Managed Streaming for Apache Kafka (MSK)와 통합합니다
- RabbitMQ:
RabbitMQ테이블 엔진을 사용해 RabbitMQ와 통합합니다
ClickHouse는 다음 소스에서 데이터를 읽을 수 있는 테이블 함수를 제공합니다:
- Hadoop:
hdfs테이블 함수를 사용해 Apache Hadoop과 통합합니다 - Hudi:
hudi테이블 함수를 사용해 S3의 기존 Apache Hudi 테이블에서 데이터를 읽습니다 - Iceberg:
iceberg테이블 함수를 사용해 S3의 기존 Apache Iceberg 테이블에서 데이터를 읽습니다 - DeltaLake:
deltaLake테이블 함수를 사용해 S3의 기존 Delta Lake 테이블에서 데이터를 읽습니다
기존 프레임워크와 데이터 소스를 ClickHouse에 연결하는 방법은 ClickHouse 통합 목록에서 확인하십시오.
탐색
- ClickHouse의 내부 동작 방식에 대한 기본 개념을 알아보려면 Core Concepts 섹션을 확인하십시오.
- ClickHouse의 핵심 개념과 기능을 훨씬 더 깊이 있게 다루는 심화 튜토리얼도 살펴보십시오.
- ClickHouse Academy의 무료 온디맨드 교육 과정을 수강하여 학습을 이어가십시오.
- 삽입 방법 안내와 함께 예시 데이터세트 목록을 제공합니다.
- 데이터가 외부 소스에서 들어오는 경우 메시지 큐, 데이터베이스, 파이프라인 등에 연결하는 방법은 통합 가이드 모음을 참조하십시오.
- UI/BI 시각화 도구를 사용하는 경우, UI를 ClickHouse에 연결하는 가이드를 참조하십시오.
- 기본 키 사용자 가이드에는 기본 키에 대해 알아야 할 모든 내용과 이를 정의하는 방법이 담겨 있습니다.