ClickHouse 데이터 소스 구성
ClickHouse는 열 기반 스토리지 데이터베이스 관리 시스템(DBMS)으로, 고도로 전문화된 모듈식 설계와 엔진 기반 아키텍처를 지원합니다.
ClickHouse는 다음과 같은 완전한 데이터 관리 기능을 제공합니다.
- 데이터 저장, 쿼리, 인덱스, 복제, 샤딩, 권한 제어 등.
- 표준 SQL 구문을 지원합니다(호환성 지속 강화 중).
- 클라이언트 도구, 네트워크 인터페이스(HTTP/TCP), 사용자 관리 등.
따라서 다른 시스템에 의존하지 않고 독립적인 데이터베이스로 바로 사용할 수 있습니다.
이 문서에서는 ClickHouse 데이터 동기화 기능의 지원 현황을 소개합니다.
지원 버전
clickhouse 24.0+
사용 제한
현재는 다음 구성 방식만 지원합니다.
- AE 사전 설정 스토리지 공간 테이블에서 ClickHouse로 쓰기 지원(오프라인 쓰기)
참고:
- ClickHouse 데이터 소스 읽기는 아직 지원하지 않습니다(오프라인 읽기)
지원 필드 타입
ClickHouse의 전체 데이터 타입은 오픈 소스 공식 데이터 타입 소개를 참고하십시오.
| 필드 타입 | 오프라인 쓰기(Writer) |
|---|---|
| 숫자 타입 | |
| Int8(tinyint) | 지원 |
| Int6(smallint) | 지원 |
| Int32(int) | 지원 |
| Int64(bigint) | 지원 |
| Float | 지원 |
| Decimal | 지원 |
| 불리언 타입 | |
| Boolean | 지원 |
| 문자열 타입 | |
| String | 지원 |
| FixedString | 지원 |
| UUID | 미지원 |
| 시간 타입 | |
| Date | 지원 |
| DateTime | 지원 |
| DateTime64 | 지원 |
| 복합 타입 | |
| Array<boolean> | 지원 |
| Array<tinyint> | 지원 |
| Array<smallint> | 지원 |
| Array<integer> | 지원 |
| Array<bigint> | 지원 |
| Array<float> | 지원 |
| Array<double> | 지원 |
| Array<varchar> | 지원 |
| Tuple | 지원 |
| Enum | 지원 |
| Nested | 지원 |
| 특수 타입 | |
| Nullable | 지원 |
| 기타 | 미지원 |
ClickHouse 데이터 소스 생성
데이터 개발 플랫폼 - 통합 모듈에서 ClickHouse 데이터 소스 추가를 선택할 수 있습니다.
데이터 소스 설정 파라미터 정보
데이터 소스에 필요한 설정 정보를 입력하고 연결 테스트를 완료하면 ClickHouse 데이터 소스가 생성됩니다.
| 필드 이름 | 설명 |
|---|---|
| 기본 정보 | |
| *데이터 소스 이름 | 데이터 개발 플랫폼 공간 내에서 고유해야 하며, 영문자, 숫자, 밑줄로 구성하고 숫자나 밑줄로 시작할 수 없습니다 |
| 비고 | 선택 사항 |
| 데이터 소스 설정 | |
| 환경 구분 없음 / 독립 환경 설정 | 둘 중 하나 선택: 환경 구분 없음은 운영 환경과 개발 환경이 하나의 설정을 공유하고, 독립 환경 설정은 두 환경을 각각 독립적으로 설정합니다 |
| *서비스 주소/IP | Clickhouse 데이터베이스가 있는 서비스 주소. 여러 주소는 쉼표로 구분합니다 |
| *포트 | ClickHouse에 접근하는 데 사용하는 포트 |
| *데이터베이스명 | ClickHouse에 이미 생성된 데이터베이스 이름 |
| *사용자 이름 | 데이터베이스에 접근할 권한이 있는 사용자 이름 |
| *비밀번호 | 사용자 이름에 대응하는 비밀번호 |
| 고급 설정 | 데이터베이스 연결에 필요한 기타 고급 파라미터. 직접 입력할 수 있습니다 |
| 참고: 기본값은 클러스터 배포 모드입니다 | |
파라미터 이름 앞에 *가 있는 항목은 필수 파라미터이고, *가 없는 항목은 선택 파라미터입니다.
오프라인 동기화 작업 생성
위 단계에 따라 ClickHouse 데이터 소스 생성을 완료하고 연결 테스트에 성공했다면, 실제 시나리오에 맞게 ClickHouse 오프라인 쓰기 작업을 구성할 수 있습니다.
ClickHouse를 데이터 목적지로 사용
데이터 목적지에서 ClickHouse를 선택하고 다음 관련 파라미터를 설정합니다.
| 필드 이름 | 설명 |
|---|---|
| *소스 타입 | 데이터 목적지의 대상 타입으로 ClickHouse 선택 |
| *데이터 소스 이름 | 데이터 소스 관리 화면에 등록된 ClickHouse 데이터 소스이며, 드롭다운에서 선택할 수 있습니다. 해당 데이터 소스를 아직 만들지 않았다면 데이터 소스 관리 버튼을 클릭하여 ClickHouse 데이터 소스를 생성할 수 있습니다. |
| *데이터베이스명 | 쓰기 대상 데이터베이스 이름 |
| *데이터 테이블 이름 | 쓰기 대상 데이터 테이블 정보 |
| 샤딩 필드 | shardingKey. 배포 모드가 클러스터이고 internal_replication이 활성화된 경우에만 샤딩 기능을 사용할 수 있습니다. 샤딩 필드를 설정하면 가져오기 시 샤딩 필드에 따라 병렬로 가져옵니다 |
| *쓰기 모드 |
|
| 고급 설정 | 일괄 처리 건수 등의 파라미터 제어 지원 일괄 건수: 배치당 제출하는 데이터양. 기본값 20000건 |
필드 매핑 설명
데이터 소스와 타겟 설정을 완료한 후에는 필드 매핑 관계를 설정해야 합니다. 시스템은 매핑 관계에 따라 소스 필드의 데이터를 타겟 필드로 자동 동기화합니다. 필드 매핑 관계는 다음 세 가지 방식으로 설정할 수 있습니다.
- 방법 1: 직접 선택. 소스 테이블 필드를 선택한 후 타겟 테이블의 타겟 필드를 선택합니다
- 방법 2: 동일 이름으로 매핑. 시스템이 소스 테이블과 타겟 테이블에서 이름이 같은 필드 사이에 매핑 관계를 자동으로 설정합니다
- 방법 3: 동일 행으로 매핑. 시스템이 같은 행에 있는 필드 사이에 매핑 관계를 자동으로 설정합니다
하나의 타겟 필드는 하나의 소스 필드에만 대응할 수 있다는 점에 유의하십시오.
필드 타입 변환 방식
데이터를 동기화할 때 시스템은 CAST() 함수로 소스 테이블 필드의 타입을 타겟 필드의 타입으로 변환하려고 시도합니다. 변환에 실패하면 타겟 필드의 값은 NULL로 설정됩니다
데이터 타입 변환 특이 사항
- √는 해당 타입 변환을 지원함을 의미합니다
- √, null은 해당 타입 변환을 지원하며, 변환에 실패하면 NULL로 설정됨을 의미합니다
| 소스 타입/타겟 타입 | ROW | ARRAY | MAP | STRING | BOOLEAN | TINYINT | SMALLINT | INT | BIGINT | FLOAT | DOUBLE | DECIMAL | BYTES | DATE | TIMESTAMP | TIME |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ROW | √, null | |||||||||||||||
| ARRAY | √, null | |||||||||||||||
| MAP | √, null | |||||||||||||||
| STRING | √ | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | √, null | ||||
| BOOLEAN | √, null | √ | ||||||||||||||
| TINYINT | √, null | √ | √, null | √, null | √, null | |||||||||||
| SMALLINT | √, null | √, null | √ | √, null | √, null | |||||||||||
| INT | √, null | √, null | √, null | √ | √, null | |||||||||||
| BIGINT | √, null | √, null | √, null | √, null | √ | |||||||||||
| FLOAT | √, null | √ | √, null | √, null | ||||||||||||
| DOUBLE | √, null | √, null | √ | √, null | ||||||||||||
| DECIMAL | √, null | √, null | √, null | √ | ||||||||||||
| BYTES | √, null | √ | ||||||||||||||
| DATE | √, null | √ | √, null | |||||||||||||
| TIMESTAMP | √, null | √, null | √ | |||||||||||||
| TIME | √, null | √ |
기본 정보 설정
마지막으로 통합 계획의 기본 정보를 설정해야 합니다. 계획 이름, 담당자, 통합 동기화 속도, 비고 등이 포함됩니다.
설정을 완료한 후 저장 버튼을 클릭하면 통합 계획 생성이 완료됩니다.
참고: 계획 이름은 저장 후 수정할 수 없습니다
상세 페이지:
오프라인 동기화 계획을 작업 플로우에 연결
작업 플로우에 연결
1. 연결 시작
- 통합 계획 상세 페이지에서 오른쪽 상단의 작업 플로우에 연결 버튼을 클릭합니다
2. 작업 플로우 선택
-
드롭다운 메뉴에서 대상 작업 플로우를 선택합니다
-
새 작업 플로우를 만들려면:
- 드롭다운 메뉴 아래의 새 작업 플로우 바로가기 버튼을 클릭합니다
- 또는 개발 모듈로 이동하여 생성합니다
-
팁: 대상 작업 플로우가 표시되지 않으면 오른쪽의 ↻ 새로고침 버튼을 클릭합니다
3. 동기화 노드 생성
- 작업 플로우에서 오프라인 동기화 계획 타입의 노드를 새로 만듭니다
- 이 노드는 현재 통합 계획과 연관되며, 노드가 실행되면 해당 통합 계획의 실행이 트리거됩니다
4. 연결 완료
- 노드 생성 및 연결을 클릭하여 설정을 완료합니다
- 연결에 성공하면 작업 플로우로 이동을 클릭하여 연결 결과를 바로 확인할 수 있습니다
참고: 작업 플로우에 연결하여 생성된 작업 노드는 아직 배포되지 않은 상태입니다. 작업 플로우로 이동하여 확인한 후 해당 노드를 배포하여 라이브 상태로 전환하는 것을 권장합니다.
작업 플로우 연결 해제
오프라인 동기화 계획의 작업 플로우 연결을 해제하려면 다음과 같이 진행합니다.
- 작업 플로우가 아직 배포되지 않았다면, 해당 계획이 연결된 작업 플로우로 이동하여 개발 모드에서 해당 오프라인 동기화 계획 작업 노드를 삭제하면 됩니다.
- 작업 플로우가 이미 배포되어 라이브 상태라면, 개발 모드에서 해당 오프라인 동기화 계획 작업 노드를 삭제한 후 작업 플로우를 다시 배포해야 합니다. 이렇게 하면 운영 환경에서도 해당 노드의 연결이 함께 해제됩니다.

