BigQuery와 ClickHouse Cloud 통합
Private Preview 대기자 명단에 여기에서 등록할 수 있습니다.
BigQuery ClickPipe는 BigQuery에서 ClickHouse Cloud로 데이터를 수집하기 위한 완전 관리형이고 안정적인 방식을 제공합니다. Private Preview 단계에서는 초기 적재(initial load) 복제 방식을 지원하여, 탐색 및 프로토타이핑을 위해 BigQuery 데이터세트를 대량으로 적재하는 데 도움이 됩니다. CDC는 향후 지원될 예정이며, 그때까지는 초기 적재가 완료된 후에도 BigQuery 데이터 내보내기를 ClickHouse Cloud와 지속적으로 동기화하기 위해 Google Cloud Storage ClickPipe를 사용하는 것을 권장합니다.
BigQuery ClickPipes는 ClickPipes UI를 사용하여 수동으로 배포 및 관리할 수 있으며, OpenAPI와 Terraform을 사용해 프로그래밍 방식으로도 관리할 수 있습니다.
기능
초기 로드
BigQuery ClickPipe는 선택된 BigQuery dataset의 테이블을 단일 배치 작업으로 ClickHouse 대상 테이블에 로드합니다. 수집 작업이 완료되면 ClickPipe는 자동으로 중지됩니다. 초기 로드 수집에는 스테이징을 위한 사용자 제공 Google Cloud Storage(GCS) 버킷이 필요합니다. 향후에는 이 중간 버킷을 ClickPipes에서 제공하고 관리할 예정입니다.
ClickPipes는 BigQuery에서 스테이징 GCS 버킷으로 데이터를 가져오기 위해 배치 추출 작업을 사용합니다. 이 작업에 대해서는 BigQuery에서 처리 요금이 부과되지 않습니다.
CDC (Change Data Capture, 변경 데이터 캡처)
CDC는 현재 Private Preview에서는 지원되지 않지만, 향후 지원될 예정입니다. 그동안에는 초기 로드가 완료된 후 Google Cloud Storage ClickPipe를 사용하여 BigQuery 데이터 내보내기 결과를 ClickHouse Cloud로 지속적으로 동기화하도록 권장합니다.
데이터 타입 매핑
| BigQuery 데이터 타입 | ClickHouse 데이터 타입 | 세부 정보 |
|---|---|---|
BOOL | Bool | |
INT64 | Int64 | |
FLOAT64 | Float64 | |
NUMERIC | Decimal(P, S) | 정밀도는 최대 38, 스케일은 최대 9까지입니다. 정밀도와 스케일은 그대로 유지됩니다. |
BIGNUMERIC | Decimal(P, S) | 정밀도는 최대 76, 스케일은 최대 38까지입니다. 정밀도와 스케일은 그대로 유지됩니다. |
STRING | String | |
BYTES | String | |
JSON | String (JSON) | |
DATE | Date | |
TIME | String | 마이크로초 단위 정밀도를 지원합니다. |
DATETIME | DateTime | 마이크로초 단위 정밀도를 지원합니다. |
TIMESTAMP | DateTime64(6) | 마이크로초 단위 정밀도를 지원합니다. |
GEOGRAPHY | String | |
GEOMETRY | String | |
UUID | String | |
ARRAY<T> | Array(T) | |
ARRAY<DATE> | Array(Date) | |
STRUCT (RECORD) | String |
액세스 제어
인증
서비스 계정 자격 증명
ClickPipes는 서비스 계정 키를 사용하여 Google Cloud 프로젝트에 대한 인증을 수행합니다. BigQuery에서 데이터를 내보내고, 스테이징용 GCS 버킷에 로드한 뒤, 이를 ClickHouse로 읽어올 수 있도록, 필요한 권한만 최소한으로 부여한 전용 서비스 계정을 별도로 생성할 것을 권장합니다.

권한
BigQuery
서비스 계정에는 다음 BigQuery 역할이 있어야 합니다.
접근 범위를 더 세밀하게 설정하려면 IAM conditions를 사용하여 해당 역할이 접근할 수 있는 리소스를 제한할 것을 권장합니다. 예를 들어, 동기화하려는 테이블이 포함된 특정 데이터 세트로 dataViewer 역할의 범위를 제한할 수 있습니다.
Cloud Storage
서비스 계정에는 다음과 같은 Cloud Storage 역할이 부여되어 있어야 합니다.
액세스 범위를 더 세밀하게 제한하기 위해 역할이 액세스할 수 있는 리소스를 제한하도록 IAM conditions을 사용할 것을 권장합니다. 예를 들어, objectAdmin 및 bucketViewer 역할을 ClickPipes 동기화를 위해 생성된 전용 버킷으로만 제한할 수 있습니다.