MySQL에서 ClickHouse로 데이터 수집하기 (CDC 사용)
ClickPipes를 통해 MySQL에서 ClickHouse Cloud로 데이터를 수집하는 기능은 퍼블릭 베타 단계입니다.
MySQL ClickPipe는 MySQL 및 MariaDB 데이터베이스에서 ClickHouse Cloud로 데이터를 수집하기 위한 완전 관리형이면서도 안정적인 방법을 제공합니다. 일회성 수집을 위한 대량 적재(bulk load) 와 지속적인 수집을 위한 Change Data Capture (CDC) 를 모두 지원합니다.
MySQL ClickPipes는 ClickPipes UI를 사용하여 수동으로 배포하고 관리할 수 있습니다. 향후에는 OpenAPI 및 Terraform를 사용하여 MySQL ClickPipes를 프로그래밍 방식으로 배포하고 관리할 수 있게 될 예정입니다.
사전 준비 사항
시작하려면 먼저 MySQL 데이터베이스가 binlog 복제를 위해 올바르게 설정되어 있는지 확인해야 합니다. 구성 단계는 MySQL 배포 방식에 따라 달라지므로, 아래의 해당 안내서를 따라 주십시오:
지원되는 데이터 소스
| Name | Logo | Details |
|---|---|---|
| Amazon RDS MySQL 일회성 적재, CDC | Amazon RDS MySQL 구성 가이드를 따르십시오. | |
| Amazon Aurora MySQL 일회성 적재, CDC | Amazon Aurora MySQL 구성 가이드를 따르십시오. | |
| Cloud SQL for MySQL 일회성 적재, CDC | Cloud SQL for MySQL 구성 가이드를 따르십시오. | |
| Azure Flexible Server for MySQL 일회성 적재 | Azure Flexible Server for MySQL 구성 가이드를 따르십시오. | |
| Self-hosted MySQL 일회성 적재, CDC | Generic MySQL 구성 가이드를 따르십시오. | |
| Amazon RDS MariaDB 일회성 적재, CDC | Amazon RDS MariaDB 구성 가이드를 따르십시오. | |
| Self-hosted MariaDB 일회성 적재, CDC | Generic MariaDB 구성 가이드를 따르십시오. |
소스 MySQL 데이터베이스를 설정한 후에는 ClickPipe 생성을 계속 진행할 수 있습니다.
ClickPipe 생성하기
ClickHouse Cloud 계정에 로그인되어 있는지 확인하십시오. 아직 계정이 없다면 여기에서 가입할 수 있습니다.
- ClickHouse Cloud 콘솔에서 사용 중인 ClickHouse Cloud Service로 이동합니다.

- 왼쪽 메뉴에서
Data Sources버튼을 선택한 다음 「Set up a ClickPipe」를 클릭합니다.

MySQL CDC타일을 선택합니다.

소스 MySQL 데이터베이스 연결 추가
-
사전 준비 단계에서 구성해 둔 소스 MySQL 데이터베이스의 연결 정보를 입력합니다.
참조연결 정보를 추가하기 전에 방화벽 규칙에서 ClickPipes IP 주소를 허용하도록 설정했는지 확인하십시오. 다음 페이지에서 ClickPipes IP 주소 목록을 확인할 수 있습니다. 자세한 내용은 이 페이지 상단에 연결된 소스 MySQL 설정 가이드를 참고하십시오.

(선택 사항) SSH 터널링 설정
소스 MySQL 데이터베이스가 공용 인터넷에서 접근할 수 없는 경우 SSH 터널링 정보를 지정할 수 있습니다.
-
"Use SSH Tunnelling" 토글을 활성화합니다.
-
SSH 연결 정보를 입력합니다.

-
키 기반 인증을 사용하려면 "Revoke and generate key pair"를 클릭하여 새 키 쌍을 생성한 뒤, 생성된 공개 키를 SSH 서버의
~/.ssh/authorized_keys에 복사합니다. -
"Verify Connection"을 클릭하여 연결을 확인합니다.
ClickPipes가 SSH 터널을 설정할 수 있도록, SSH 배스천 호스트의 방화벽 규칙에서 ClickPipes IP addresses를 허용 목록에 추가하십시오.
연결 정보를 모두 입력한 후 Next를 클릭합니다.
고급 설정 구성
필요한 경우 고급 설정을 구성할 수 있습니다. 각 설정에 대한 간단한 설명은 다음과 같습니다.
- Sync interval: ClickPipes가 소스 데이터베이스의 변경 사항을 폴링하는 주기입니다. 이 값은 대상 ClickHouse 서비스에 영향을 줍니다. 비용에 민감한 사용자의 경우 이 값을 비교적 큰 값(예:
3600이상)으로 설정할 것을 권장합니다. - Parallel threads for initial load: 초기 스냅샷을 가져올 때 사용되는 병렬 워커 수입니다. 테이블 수가 많고 초기 스냅샷을 가져오는 데 사용되는 병렬 워커 수를 제어하려는 경우에 유용합니다. 이 설정은 테이블별로 적용됩니다.
- Pull batch size: 단일 배치에서 가져올 행의 수입니다. 최선의 시도로 동작하는 설정이므로, 모든 경우에 이 값이 그대로 적용되지 않을 수 있습니다.
- Snapshot number of rows per partition: 초기 스냅샷 동안 각 파티션에서 가져올 행의 수입니다. 테이블에 행이 매우 많고 각 파티션에서 가져오는 행의 수를 제어하려는 경우에 유용합니다.
- Snapshot number of tables in parallel: 초기 스냅샷 동안 병렬로 가져올 테이블의 수입니다. 테이블 수가 많고 병렬로 가져올 테이블 수를 제어하려는 경우에 유용합니다.
테이블 구성
-
여기에서 ClickPipe의 대상 데이터베이스를 선택할 수 있습니다. 기존 데이터베이스를 선택하거나 새 데이터베이스를 생성할 수 있습니다.

-
원본 MySQL 데이터베이스에서 복제할 테이블을 선택할 수 있습니다. 테이블을 선택하는 과정에서 대상 ClickHouse 데이터베이스에서 테이블 이름을 변경하거나 특정 컬럼을 제외하도록 설정할 수도 있습니다.
권한 검토 및 ClickPipe 시작
-
권한 드롭다운에서 "Full access" 역할을 선택한 후 "Complete Setup"을 클릭합니다.

마지막으로, 자주 발생하는 문제와 해결 방법에 대한 자세한 내용은 "ClickPipes for MySQL FAQ" 페이지를 참고하십시오.
다음 단계는 무엇입니까?
ClickPipe를 설정하여 MySQL에서 ClickHouse Cloud로 데이터를 복제하도록 했다면, 이제 최적의 성능을 위해 데이터를 어떻게 쿼리하고 모델링할지에 집중하면 됩니다. MySQL CDC 및 문제 해결과 관련된 일반적인 질문은 MySQL FAQ 페이지를 참고하십시오.