Kinesis Data Firehose가 S3에 작은 파일을 너무 많이 생성하는 이유는 무엇입니까?

최종 업데이트 날짜: 2022년 8월 4일

Amazon Kinesis Data Firehose에서 Amazon Simple Storage Service(S3)로 데이터를 푸시하려고 합니다. 하지만 Kinesis Data Firehose가 Amazon S3 버킷에 작은 파일을 많이 만들고 있습니다. 이유가 무엇입니까?

간략한 설명

Kinesis Data Firehose는 다음과 같은 이유로 Bufferinghints API에서 지정된 레코드보다 작은 레코드를 전달합니다.

  • 압축이 활성화되어 있습니다.
  • Kinesis Data Firehose 전송 스트림이 확장되었습니다.
  • Amazon Kinesis Data Streams가 데이터 소스로 나열됩니다.

해결 방법

압축이 활성화되었습니다.

Kinesis Data Firehose 전송 스트림에서 압축이 활성화된 경우 압축 전에 두 개의 Bufferinghints 파라미터가 모두 적용됩니다. SizeInMBIntervalInSeconds 파라미터를 통해 확인합니다.

레코드의 각 배치가 버퍼링된 후, 파라미터가 적용됩니다. 데이터 레코드가 버퍼링되고 압축되면 Amazon S3에 더 작은 파일이 생성됩니다.

Kinesis Data Firehose 전송 스트림이 확장되었습니다.

한도 증가가 요청되었거나 Kinesis Data Firehose가 자동으로 확장되면 Data Firehose 전송 스트림이 확장될 수 있습니다. 기본적으로 Kinesis Data Firehose는 전송 스트림을 특정 한도까지 자동으로 확장합니다. Amazon Kinesis의 자동 조정 동작은 한도를 늘리지 않고도 조절 가능성을 줄입니다.

Kinesis Data Firehose의 전송 스트림이 확장되면 Data Firehose의 버퍼링 힌트에 영향을 줄 수 있습니다.

참고: BufferSize는 Kinesis Data Firehose를 구성할 때 설정됩니다.

또한 Kinesis Data Firehose 전송 스트림에는 비례적인 병렬 버퍼링 수가 있으며, 여기서 데이터는 모든 버퍼에서 동시에 전달됩니다. 예를 들어, Kinesis Data Firehose는 데이터를 버퍼링하고 버퍼 크기 한도에 따라 단일 파일을 생성할 수 있습니다. Kinesis Data Firehose가 현재 처리량(throughput) 한도를 두 배로 늘리면 두 개의 개별 채널이 동일한 시간 간격 내에 파일을 생성합니다. Kinesis Data Firehose가 최대 4배까지 확장되는 경우, 동일한 시간 간격 동안 S3에 4개의 파일을 생성하는 네 개의 다른 채널이 있습니다.

참고: 내부적으로 생성되는 채널 수는 Kinesis Data Firehose에 따라 다릅니다. 위 예시에서는 4개의 채널이 생성되었습니다.

Kinesis Data Firehose 전송 스트림이 기본 한도를 초과하여 확장되지 않았는지 확인합니다. Kinesis Data Firehose 전송 스트림의 현재 한도를 확인하려면 다음 Amazon CloudWatch 지표를 확인하십시오.

  • BytesPerSecondLimit
  • RecordsPerSecondLimit
  • PutRequestsPerSecondLimit

이러한 지표의 값이 기본 할당량 한도와 다르면 Kinesis Data Firehose의 전송 스트림이 확장되었음을 나타냅니다.

Kinesis Data Stream이 데이터 소스로 나열되는 경우

Kinesis Data Stream이 Kinesis Data Firehose의 데이터 소스로 나열되면 Kinesis Data Firehose가 내부적으로 확장됩니다. 기본적으로 Kinesis Data Firehose는 Kinesis Data Stream의 볼륨 용량을 충족하려고 시도합니다. 이 확장을 통해 버퍼링 크기가 변경되고 크기가 작은 레코드가 전송될 수 있습니다.

참고: 버퍼링 힌트 옵션은 힌트로 처리됩니다. 따라서 Kinesis Data Firehose는 버퍼링을 최적화하기 위해 다른 값을 사용하도록 선택할 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?