메인 콘텐츠로 건너뛰기
ClickHouse는 다양한 방식으로 OLTP 데이터베이스 인프라와 쉽게 통합할 수 있습니다. 그중 한 가지 방법은 SQL 덤프를 사용해 다른 데이터베이스와 ClickHouse 간에 데이터를 전송하는 것입니다.

SQL 덤프 생성

SQLInsert를 사용하면 데이터를 SQL 포맷으로 덤프할 수 있습니다. ClickHouse는 데이터를 INSERT INTO <table name> VALUES(... 형식으로 기록하며, output_format_sql_insert_table_name 설정 옵션의 값을 테이블 이름으로 사용합니다:
컬럼 이름은 output_format_sql_insert_include_column_names 옵션을 비활성화하여 생략할 수 있습니다:
이제 dump.sql 파일을 다른 OLTP 데이터베이스로 가져올 수 있습니다:
some_db MySQL 데이터베이스에 some_table 테이블이 존재한다고 가정합니다. 일부 DBMS는 단일 배치에서 처리할 수 있는 값의 수에 제한이 있을 수 있습니다. 기본적으로 ClickHouse는 65k개의 값으로 이루어진 배치를 생성하지만, 이는 output_format_sql_insert_max_batch_size 옵션으로 변경할 수 있습니다:

값 집합 내보내기

ClickHouse에는 Values 포맷이 있는데, 이는 SQLInsert와 비슷하지만 INSERT INTO table VALUES 부분을 생략하고 값 집합만 반환합니다:

SQL 덤프에서 데이터 삽입하기

SQL 덤프를 읽으려면 MySQLDump 포맷을 사용합니다:
기본적으로 ClickHouse는 알 수 없는 컬럼을 건너뛰고(input_format_skip_unknown_fields 옵션으로 제어), 덤프에서 처음 발견된 테이블의 데이터를 처리합니다(여러 테이블이 하나의 파일에 덤프된 경우). DDL 문은 건너뜁니다. MySQL 덤프에서 테이블로 데이터를 로드하려면(mysql.sql 파일):
MySQL dump 파일을 사용해 테이블을 자동으로 생성할 수도 있습니다:
여기서는 ClickHouse가 자동으로 추론한 구조를 바탕으로 table_from_mysql이라는 테이블을 생성했습니다. ClickHouse는 데이터에 기반해 타입을 감지하거나, 가능한 경우 DDL을 사용합니다:

기타 포맷

ClickHouse는 다양한 시나리오와 플랫폼을 지원하기 위해 텍스트 포맷과 바이너리 포맷을 비롯한 여러 포맷을 지원합니다. 다음 문서에서 더 많은 포맷과 활용 방법을 살펴보십시오. 또한 clickhouse-local도 확인해 보십시오. ClickHouse 서버 없이 로컬/원격 파일을 대상으로 작업할 수 있는 이식 가능한 완전한 기능의 도구입니다.
마지막 수정일 2026년 6월 19일