ObjectCreated:* 이벤트를 수신하여 파일 이름 규칙과 관계없이 새 파일을 모두 수집할 수 있습니다.
비순차 모드는 오직 Amazon S3에서만 지원되며, 퍼블릭 버킷이나 S3 호환 서비스에서는 지원되지 않습니다. 이 기능을 사용하려면 Amazon SQS 큐를 버킷에 연결하고, 필요에 따라 Amazon EventBridge를 이벤트 라우터로 사용하도록 설정해야 합니다.
작동 방식
ObjectCreated:* 이벤트를 수신합니다. 이전에 이미 확인한 파일에 대한 메시지이거나, 경로와 일치하지 않는 파일이거나, 다른 유형의 이벤트는 무시됩니다. 파일은 max insert bytes 또는 max file count에 설정된 임계값에 도달하거나, 설정 가능한 인터벌이 지난 후(기본값 30초) 적재됩니다. 특정 파일이나 특정 시점부터 수집을 시작하는 것은 불가능합니다. ClickPipes는 항상 선택한 경로의 모든 파일을 적재합니다.
데이터를 적재하는 동안에는 다양한 유형의 장애가 발생할 수 있으며, 이로 인해 부분 삽입이나 중복 데이터가 생길 수 있습니다. 객체 스토리지 ClickPipes는 삽입 실패에도 견고하며, 임시 스테이징 테이블(staging table)을 사용해 정확히 한 번 처리 의미 체계를 제공합니다. 데이터는 먼저 스테이징 테이블에 삽입됩니다. 문제가 발생하면 스테이징 테이블을 TRUNCATE한 뒤 깨끗한 상태에서 삽입을 다시 시도합니다. 삽입이 성공적으로 완료된 경우에만 파티션이 대상 테이블로 이동합니다.
Amazon SQS 큐 생성
1. AWS Console에서 Simple Queue Service > Create queue로 이동합니다. 기본값을 사용하여 새 표준 큐를 생성합니다.2. 아래 두 가지 옵션 중 하나를 사용하여 S3 버킷을 SQS 큐에 연결하십시오. EventBridge는 팬아웃(fan-out)을 지원하고 보다 유연한 이벤트 필터링을 제공하며, 이벤트 유형 및 접두사(prefix)당 알림 규칙을 하나로 제한하는 S3 제약을 받지 않으므로 대부분의 사용 사례에 권장됩니다.- EventBridge 사용
- 직접 S3 → SQS
a. S3 버킷 속성에서 Event notifications > Amazon EventBridge로 이동한 다음, EventBridge로 알림을 전송하도록 활성화합니다. Save changes를 클릭합니다.b. AWS Console에서 Amazon EventBridge > Rules > Create rule로 이동합니다. 규칙 이름(예: 필요하면 접두사 또는 접미사 기준으로 필터링할 수 있도록 패턴에
S3ObjectCreated)을 지정하고 default 이벤트 버스를 선택한 다음 다음을 클릭합니다. Build event pattern 단계에서 이벤트 소스로 AWS events or EventBridge partner events를 선택한 후, 아래 이벤트 패턴을 수동으로 입력합니다. 이때 <bucket-name>은 버킷 이름으로 바꾸십시오.object.key 조건을 추가할 수 있습니다. 추가하는 경우 ClickPipe에 설정한 경로와 일치해야 합니다.c. Select target(s) 단계에서 대상 유형으로 AWS service를 선택하고 SQS queue를 선택합니다. 이전 단계에서 생성한 큐를 선택합니다. EventBridge가 필요한 IAM role을 자동 생성할 수 있도록 **Use execution role (recommended)**은 체크된 상태로 그대로 둔 다음, 다음을 클릭하고 마법사를 완료합니다.d. EventBridge가 이 큐로 메시지를 전송할 수 있도록 SQS 큐 액세스 정책을 편집합니다. <sqs-queue-arn> 및 <eventbridge-rule-arn>을 적절한 값으로 바꾸십시오.IAM role 설정
1. ClickHouse Cloud 콘솔에서 Settings > Network security information으로 이동한 다음, 서비스의 IAM role ARN을 복사합니다.2. AWS Console에서 IAM > Roles > Create role로 이동합니다. Custom trust policy를 선택한 뒤, 다음 내용을 붙여넣고<ch-cloud-arn>을 이전 단계에서 복사한 IAM role ARN으로 바꿉니다:<bucket-arn> 및 <sqs-queue-arn>을 적절한 값으로 대체하세요:unordered mode로 ClickPipe 생성
1. ClickHouse Cloud 콘솔에서 Data Sources > Create ClickPipe로 이동한 다음 Amazon S3를 선택합니다. S3 버킷에 연결하는 데 필요한 정보를 입력합니다. Authentication method에서 IAM role을 선택하고, 이전 단계에서 생성한 역할의 ARN을 입력합니다.2. Incoming data에서 Continuous ingestion을 켭니다. 수집 모드로 Any order를 선택하고, 버킷에 연결된 큐의 SQS queue URL을 입력합니다.3. Parse information에서 대상 테이블의 **정렬 키(Sorting key)**를 정의합니다. 매핑된 스키마를 필요에 맞게 조정한 다음, ClickPipes 데이터베이스 사용자에 대한 역할을 구성합니다.4. 구성을 검토한 후 Create ClickPipe를 클릭합니다. ClickPipes는 먼저 버킷을 초기 스캔하여 지정된 경로와 일치하는 기존 파일을 모두 로드한 다음, 큐에 새ObjectCreated:* 이벤트가 도착하면 파일 처리를 시작합니다.