여기에서 비공개 프리뷰 대기자 명단에 등록할 수 있습니다.
BigQuery ClickPipe는 BigQuery의 데이터를 ClickHouse Cloud로 수집할 수 있는 완전관리형의 안정적인 방법을 제공합니다. 비공개 프리뷰에서는 BigQuery 데이터셋을 탐색 및 프로토타이핑용으로 대량 적재할 수 있도록 초기 적재 복제 방식을 지원합니다. CDC는 향후 지원될 예정입니다. 그전까지는 초기 적재가 완료된 후 BigQuery 데이터 내보내기를 ClickHouse Cloud에 지속적으로 동기화하기 위해 Google Cloud Storage ClickPipe를 사용할 것을 권장합니다.
BigQuery ClickPipes는 ClickPipes UI를 통해 수동으로 배포하고 관리할 수 있으며, OpenAPI 및 Terraform을 사용해 프로그래밍 방식으로도 배포하고 관리할 수 있습니다.
BigQuery ClickPipe는 BigQuery 데이터셋에서 선택한 테이블을 한 번의 배치 작업으로 ClickHouse 대상 테이블에 적재합니다. 수집 작업이 완료되면 ClickPipe는 자동으로 중지됩니다. 초기 적재 과정에는 스테이징용으로 사용자 제공 Google Cloud Storage(GCS) 버킷이 필요합니다. 앞으로는 이 중간 버킷을 ClickPipes에서 제공하고 관리할 예정입니다.
ClickPipes는 BigQuery에서 스테이징 GCS 버킷으로 데이터를 가져오기 위해 배치 추출 작업을 사용합니다. 이 작업에는 BigQuery의 처리 요금이 부과되지 않습니다.
현재 비공개 프리뷰에서는 CDC가 지원되지 않지만, 향후 지원될 예정입니다. 그전까지는 초기 적재가 완료된 후 Google Cloud Storage ClickPipe를 사용해 BigQuery 데이터 내보내기를 ClickHouse Cloud에 지속적으로 동기화하는 것을 권장합니다.
BigQuery 데이터 타입.
| BigQuery 데이터 타입 | ClickHouse 데이터 타입 | 세부 정보 |
|---|
BOOL | Bool | |
INT64 | Int64 | |
FLOAT64 | Float64 | |
NUMERIC | Decimal(P, S) | 정밀도는 최대 38, scale은 최대 9입니다. 정밀도와 scale이 유지됩니다. |
BIGNUMERIC | Decimal(P, S) | 정밀도는 최대 76, scale은 최대 38입니다. 정밀도와 scale이 유지됩니다. |
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 프로젝트에 인증합니다. ClickPipes가 BigQuery에서 데이터를 내보내고, 이를 스테이징 GCS 버킷에 적재한 뒤, ClickHouse로 읽어올 수 있도록 필요한 최소한의 권한만 부여된 전용 서비스 계정을 생성하는 것을 권장합니다.
서비스 계정에는 다음 BigQuery 역할이 있어야 합니다.
액세스 범위를 더 구체적으로 제한하려면 IAM 조건을 사용해 해당 역할이 액세스할 수 있는 리소스를 제한하는 것을 권장합니다. 예를 들어, dataViewer 역할을 동기화하려는 테이블이 포함된 특정 데이터셋으로 제한할 수 있습니다.
resource.name.startsWith("projects/<PROJECT_ID>/datasets/<DATASET_NAME>")
서비스 계정에는 다음 Cloud Storage 역할이 있어야 합니다.
액세스 범위를 더 세분화하려면 역할이 접근할 수 있는 리소스를 제한하는 IAM 조건을 사용하는 것이 좋습니다. 예를 들어 objectAdmin 및 bucketViewer 역할을 ClickPipes 동기화용으로 생성된 전용 버킷에만 적용되도록 제한할 수 있습니다.
resource.name.startsWith("projects/_/buckets/<BUCKET_NAME>")