본문 바로가기
WIKI 기술 지식 베이스

S3 source

원문 보기 위키 갱신

출처: 문서

본문

S3 소스

s3는 Amazon Simple Storage Service (Amazon S3) 객체에서 이벤트를 읽는 소스 플러그인이에요. 소스를 Amazon Simple Queue Service (Amazon SQS) 큐를 사용하거나 S3 버킷을 스캔하도록 구성할 수 있어요:

  • Amazon SQS 알림을 사용하려면 S3 버킷에서 S3 이벤트 알림을 구성하세요. Amazon SQS가 구성되면 s3 소스는 Amazon SQS에서 메시지를 받아요. SQS 메시지가 S3 객체가 생성되었음을 나타내면 s3 소스는 S3 객체를 로드한 다음 구성된 codec을 사용하여 파싱해요.
  • S3 버킷을 사용하려면 s3 소스가 S3 객체를 파싱할 때 OpenSearch Data Prepper 대신 Amazon S3 Select를 사용하도록 구성해요.

IAM 권한

s3 소스를 사용하려면 AWS Identity and Access Management (IAM) 권한을 구성하여 Data Prepper가 Amazon S3에 액세스할 수 있도록 해요. 다음 JSON 구성과 유사한 구성을 사용할 수 있어요:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "s3-access",
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:ListBucket",
              "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::<YOUR-BUCKET>/*"
        },
        {
            "Sid": "sqs-access",
            "Effect": "Allow",
            "Action": [
                "sqs:ChangeMessageVisibility",
                "sqs:DeleteMessage",
                "sqs:ReceiveMessage"
            ],
            "Resource": "arn:aws:sqs:<YOUR-REGION>:<123456789012>:<YOUR-SQS-QUEUE>"
        },
        {
            "Sid": "kms-access",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:<YOUR-REGION>:<123456789012>:key/<YOUR-KMS-KEY>"
        }
    ]
}

S3 객체나 Amazon SQS 큐가 AWS Key Management Service (AWS KMS)를 사용하지 않는다면 kms:Decrypt 권한을 제거하세요.

visibility_duplication_protection을 활성화하지 않으면 SQS 큐 액세스에서 sqs:ChangeMessageVisibility 권한을 제거할 수 있어요.

교차 계정 S3 액세스

Data Prepper가 S3 버킷에서 데이터를 가져올 때 bucket owner condition을 사용하여 버킷의 소유권을 확인해요. 기본적으로 Data Prepper는 S3 버킷이 해당 SQS 큐를 소유한 계정과 동일한 계정이 소유하기를 기대해요. SQS가 제공되지 않으면 Data Prepper는 aws 구성의 Amazon Resource Name (ARN) 역할을 사용해요.

여러 S3 버킷에서 데이터를 수집하려고 하지만 각 버킷이 다른 S3 계정과 연결되어 있다면 다음 조건에 따라 Data Prepper가 교차 계정 S3 액세스를 확인하도록 구성해야 해요:

  • 데이터를 가져오려는 모든 S3 버킷이 SQS 큐의 계정이 아닌 다른 계정에 속한 경우 default_bucket_owner를 버킷 계정 소유자의 계정 ID로 설정하세요.
  • S3 버킷이 여러 계정에 있는 경우 bucket_owners 맵을 사용하세요.

다음 예제에서 SQS 큐는 계정 000000000000이 소유하고 있어요. SQS 큐에는 두 개의 S3 버킷(my-bucket-01 및 my-bucket-02)의 데이터가 포함되어 있어요. my-bucket-01은 123456789012가 소유하고 my-bucket-02는 999999999999가 소유하기 때문에 bucket_owners 맵은 다음 구성과 같이 두 버킷 소유자를 해당 계정 ID로 호출해요:

s3:
  sqs:
      queue_url: "https://sqs.us-east-1.amazonaws.com/000000000000/MyQueue"
  bucket_owners:
    my-bucket-01: 123456789012
    my-bucket-02: 999999999999

bucket_owners와 default_bucket_owner를 함께 사용할 수 있어요.

구성

다음 매개변수를 사용하여 s3 소스를 구성할 수 있어요.

매개변수 필수 유형 설명
notification_type 예 String sqs여야 해요.
notification_source 아니요 String SQS가 알림을 수신하는 방식을 결정해요. s3 또는 eventbridge여야 해요. s3는 Amazon S3에서 Amazon SQS로 직접 전송되는 알림 또는 Amazon S3에서 Amazon Simple Notification Service (Amazon SNS)를 거쳐 Amazon SQS로 팬아웃되는 알림을 나타내요. eventbridge는 Amazon EventBridge 및 Amazon Security Lake의 알림을 나타내요. 기본값은 s3이에요.
compression 아니요 String 적용할 압축 알고리즘: none, gzip, snappy, 또는 automatic. 기본값은 none이에요.
codec 예 Codec 적용할 codec이에요.
sqs 예 SQS SQS 구성이에요. 자세한 내용은 sqs를 참조하세요.
aws 예 AWS AWS 구성이에요. 자세한 내용은 aws를 참조하세요.
on_error 아니요 String Amazon SQS에서 오류를 처리하는 방법을 결정해요. retain_messages 또는 delete_messages 중 하나일 수 있어요. retain_messages는 메시지를 Amazon SQS 큐에 남겨두고 메시지를 다시 보내려고 시도해요. 데드레터 큐에 권장돼요. delete_messages는 실패한 메시지를 삭제해요. 기본값은 retain_messages이에요.
buffer_timeout 아니요 Duration 시간 초과가 발생하기 전에 Data Prepper 버퍼에 이벤트를 쓰는 데 허용되는 시간이에요. 지정된 시간 동안 Amazon S3 소스가 버퍼에 쓸 수 없는 이벤트는 폐기돼요. 기본값은 10s이에요.
records_to_accumulate 아니요 Integer 버퍼에 쓰기 전에 누적되는 메시지 수예요. 기본값은 100이에요.
metadata_root_key 아니요 String 각 이벤트에 S3 메타데이터를 추가하기 위한 기본 키예요. 메타데이터에는 각 S3 객체의 키와 버킷이 포함돼요. 기본값은 s3/이에요.
default_bucket_owner 아니요 String S3 버킷 소유자의 AWS 계정 ID예요. 자세한 내용은 교차 계정 S3 액세스를 참조하세요.
bucket_owners 아니요 Map 버킷을 소유한 계정의 ID를 포함하는 버킷 이름 맵이에요. 자세한 내용은 교차 계정 S3 액세스를 참조하세요.
disable_bucket_ownership_validation 아니요 Boolean true로 설정하면 S3 소스가 버킷이 예상 계정에 의해 소유되었는지 확인하지 않아요. 예상 계정은 Amazon SQS 큐를 소유한 계정과 동일해요. 기본값은 false이에요.
acknowledgments 아니요 Boolean true로 설정하면 OpenSearch 싱크가 이벤트를 수신할 때 s3 소스가 엔드 투 엔드 승인을 받을 수 있도록 해요.
s3_select 아니요 s3_select Amazon S3 Select 구성이에요.
scan 아니요 scan S3 스캔 구성이에요.
delete_s3_objects_on_read 아니요 Boolean true로 설정하면 S3 스캔이 S3 객체의 모든 이벤트가 모든 싱크에 의해 성공적으로 승인된 후 S3 객체를 삭제하려고 시도해요. S3 객체를 삭제할 때는 acknowledgments를 활성화해야 해요. 기본값은 false이에요.
workers 아니요 Integer 소스가 S3에서 데이터를 읽는 데 사용하는 작업자 스레드 수(1~10)를 구성해요. S3 객체 크기가 1MB 미만이 아닌 경우 이 값을 기본값으로 두세요. 더 큰 S3 객체의 경우 성능이 저하될 수 있어요. 이 설정은 SQS 기반 소스 및 S3 스캔 소스에 영향을 미쳐요. 기본값은 1이에요.

sqs

다음 매개변수를 사용하면 s3 소스 플러그인에서 Amazon SQS 사용을 구성할 수 있어요.

매개변수 필수 유형 설명
queue_url 예 String 메시지를 수신하는 Amazon SQS 큐의 URL이에요.
maximum_messages 아니요 Integer 단일 요청에서 Amazon SQS 큐로부터 수신할 최대 메시지 수예요. 기본값은 10이에요.
visibility_timeout 아니요 Duration Amazon SQS 큐에서 읽은 메시지에 적용할 가시성 제한 시간이에요. 이 매개변수는 Data Prepper가 배치의 모든 S3 객체를 읽는 데 걸릴 수 있는 시간으로 설정해야 해요. 처리가 이 제한 시간을 초과하고 visibility_duplication_protection이 활성화되지 않은 경우 메시지가 큐에서 다시 표시되어 재처리될 수 있으며, 이로 인해 싱크에 중복 데이터가 생성될 수 있어요. 최대값은 12시간(43200s)이에요. 기본값은 30s이에요.
wait_time 아니요 Duration Amazon SQS API에 대한 롱 폴링을 기다리는 시간이에요. 기본값은 20s이에요.
poll_delay 아니요 Duration Amazon SQS 메시지 배치를 읽고 처리한 후 후속 요청을 하기 전에 지연되는 시간이에요. 기본값은 0s이에요.
visibility_duplication_protection 아니요 Boolean true로 설정하면 Data Prepper가 SQS 메시지의 가시성 제한 시간을 연장하여 중복 처리를 방지하려고 시도해요. 데이터가 싱크에 도달할 때까지 Data Prepper는 S3 객체를 다시 읽지 않도록 정기적으로 ChangeMessageVisibility를 호출해요. 이 옵션은 s3 소스에서 acknowledgments가 활성화된 경우에만 적용돼요. 가시성 제한 시간은 엔드 투 엔드 승인을 통해 연장되기 때문이에요. acknowledgments가 활성화되지 않은 경우 이 옵션이 true로 설정되어도 가시성 제한 시간이 연장되지 않아요. 이 기능을 사용하려면 IAM 역할에 sqs:ChangeMessageVisibility 권한을 부여해야 해요. 기본값은 false이에요.
visibility_duplicate_protection_timeout 아니요 Duration visibility_duplication_protection을 사용할 때 메시지가 처리되지 않는 최대 총 시간을 설정해요. 최소값은 30s이고 최대값은 24시간(86400s)이에요. 기본값은 2시간(7200s)이에요.
max_receive_attempts 아니요 Integer 메시지가 자동으로 삭제되기 전에 큐에서 수신할 수 있는 최대 횟수예요. 메시지가 이 횟수 이상 수신되면 Data Prepper가 큐에서 삭제해요. 이는 반복적으로 실패하는 메시지가 큐를 차단하는 것을 방지하는 데 도움이 돼요. 최소값은 1이에요. 이 옵션이 구성되면 두 번 이상 수신된 메시지에 대해 sqsMessageDelay 메트릭이 기록되지 않아요. 기본적으로 비활성화돼요.

aws

매개변수 필수 유형 설명
region 아니요 String 자격 증명에 사용할 AWS 리전이에요. 기본값은 리전을 결정하는 표준 SDK 동작을 따라요.
sts_role_arn 아니요 String Amazon SQS 및 Amazon S3에 대한 요청에 수임할 AWS Security Token Service (AWS STS) 역할이에요. 기본값은 null이며, 이 경우 자격 증명에 대한 표준 SDK 동작을 사용해요.
aws_sts_header_overrides 아니요 Map 싱크 플러그인에 대해 IAM 역할이 수임하는 헤더 재정의 맵이에요.
sts_external_id 아니요 String Data Prepper가 STS 역할을 수임할 때 사용되는 STS 외부 ID예요. 자세한 내용은 STS AssumeRole API 참조의 ExternalID 문서를 참조하세요.

codec

codec은 s3 소스가 각 Amazon S3 객체를 구문 분석하는 방법을 결정합니다. 더 높고 효율적인 성능을 위해 특정 프로세서와 함께 코덱 조합을 사용할 수 있습니다.

newline 코덱

newline 코덱은 각각의 단일 행을 하나의 로그 이벤트로 구문 분석합니다. 각 이벤트가 한 줄씩 구문 분석되므로 대부분의 애플리케이션 로그에 이상적입니다. 또한 각 줄에 개별 JSON 객체가 있는 S3 객체에도 적합하며, 각 줄을 구문 분석하기 위해 parse_json 프로세서와 함께 사용하면 잘 맞습니다.

다음 매개변수를 사용하여 newline 코덱을 구성하세요.

매개변수 필수 유형 설명
skip_lines 아니요 Integer 이벤트를 생성하기 전에 건너뛸 줄 수입니다. 이 구성을 사용하여 공통 헤더 행을 건너뛸 수 있습니다. 기본값은 0입니다.
header_destination 아니요 String S3 객체의 헤더 줄에 할당할 키 값입니다. 이 매개변수가 지정되면 각 이벤트에 header_destination 필드가 포함됩니다.

json 코덱

json 코덱은 각 S3 객체를 JSON 배열에서 단일 JSON 객체로 구문 분석한 다음 배열의 각 객체에 대한 Data Prepper 로그 이벤트를 생성합니다.

다음 매개변수를 사용하여 json 코덱을 구성하세요.

매개변수 필수 유형 설명
key_name 아니요 String JSON 배열을 추출하고 이벤트를 생성할 입력 필드의 이름입니다.

csv 코덱

csv 코덱은 CSV(comma-separated value) 형식의 객체를 구문 분석하며, 각 행은 Data Prepper 로그 이벤트를 생성합니다.

다음 매개변수를 사용하여 csv 코덱을 구성하세요.

매개변수 필수 유형 설명
delimiter 예 Integer 열을 구분하는 구분자입니다. 기본값은 ,입니다.
quote_character 예 String CSV 데이터의 텍스트 한정자로 사용되는 문자입니다. 기본값은 "입니다.
header 아니요 String list CSV 데이터를 구문 분석하는 데 사용되는 열 이름이 포함된 헤더입니다.
detect_header 아니요 Boolean Amazon S3 객체의 첫 번째 줄을 헤더로 해석할지 여부입니다. 기본값은 true입니다.

otel_traces 코덱

otel_traces 코덱은 각 S3 객체를 OpenTelemetry 추적 레코드로 구문 분석하고 각 스팬 레코드에 대한 Data Prepper 스팬 이벤트를 생성합니다.

다음 매개변수를 사용하여 otel_traces 코덱을 구성하세요.

매개변수 필수 유형 설명
format 아니요 String OpenTelemetry 추적의 형식을 지정합니다. 유효한 값은 json 및 protobuf입니다. 기본값은 json입니다.
otel_format 아니요 String 디코딩된 스팬의 출력 형식을 지정합니다. 유효한 값은 opensearch 및 otel입니다. 기본값은 opensearch입니다.
length_prefixed_encoding 아니요 Boolean protobuf 형식에서 데이터 앞에 길이가 오는지 여부를 지정합니다. 기본값은 false입니다.

s3 소스와 함께 s3_select 사용하기

S3 객체를 구문 분석하도록 s3_select를 구성할 때 다음 매개변수를 사용하세요.

매개변수 필수 유형 설명
expression s3_select 사용 시 예 String 객체를 쿼리하는 데 사용되는 표현식입니다. expression 속성에 직접 매핑됩니다.
expression_type 아니요 String 제공된 표현식의 유형입니다. 기본값은 SQL입니다. ExpressionType에 직접 매핑됩니다.
input_serialization s3_select 사용 시 예 String S3 Select 파일 형식을 제공합니다. Amazon S3는 이 형식을 사용하여 객체 데이터를 레코드로 구문 분석하고 지정된 SQL 표현식과 일치하는 레코드만 반환합니다. csv, json 또는 parquet일 수 있습니다.
compression_type 아니요 String 객체의 압축 형식을 지정합니다. CompressionType에 직접 매핑됩니다.
csv 아니요 csv CSV 데이터 처리를 위한 CSV 구성을 제공합니다.
json 아니요 json JSON 데이터 처리를 위한 JSON 구성을 제공합니다.

csv

구문 분석된 CSV 파일의 형식을 지정하려면 s3_select의 csv 구성과 함께 다음 매개변수를 사용하세요.

이 매개변수는 S3 Select CSVInput 데이터 유형에서 사용 가능한 입력에 직접 매핑됩니다.

매개변수 필수 유형 설명
file_header_info 아니요 String 입력의 첫 번째 줄을 설명합니다. FileHeaderInfo 속성에 직접 매핑됩니다.
quote_escape 아니요 String 이미 이스케이프된 값 내에서 따옴표 문자를 이스케이프하는 데 사용되는 단일 문자입니다. QuoteEscapeCharacter 속성에 직접 매핑됩니다.
comments 아니요 String 해당 행의 시작 부분에 문자가 있을 때 행을 무시해야 함을 나타내는 데 사용되는 단일 문자입니다. Comments 속성에 직접 매핑됩니다.

json

S3 Select가 JSON 파일을 처리하는 방식을 결정하려면 s3_select의 json과 함께 다음 매개변수를 사용하세요.

매개변수 필수 유형 설명
type 아니요 String JSON 배열의 유형입니다. DOCUMENT 또는 LINES일 수 있습니다. Type 속성에 직접 매핑됩니다.

scan을 s3 소스와 함께 사용하기

다음 파라미터를 사용하면 S3 객체를 스캔할 수 있어요. 모든 파라미터는 버킷 수준에서 구성할 수 있어요.

파라미터 필수 유형 설명
start_time 아니요 String 주어진 start_time 이후에 수정된 객체를 스캔하기 시작할 시간이에요. 이 시간은 ISO LocalDateTime 형식을 따라야 해요. 예를 들어 023-01-23T10:00:00 같은 형식이에요. end_time이 start_time과 함께 설정되면 start_time 이후이고 end_time 이전인 모든 객체가 처리돼요. start_time과 range는 함께 사용할 수 없어요.
end_time 아니요 String 주어진 end_time 이후에는 객체가 스캔되지 않아요. 이 시간은 ISO LocalDateTime 형식을 따라야 해요. 예를 들어 023-01-23T10:00:00 같은 형식이에요. start_time이 end_time과 함께 설정되면 start_time 이후이고 end_time 이전인 모든 객체가 처리돼요. end_time과 range는 함께 사용할 수 없어요.
range 아니요 String 모든 버킷에서 객체를 스캔할 시간 범위예요. ISO_8601 표기 문자열(예: PT20.345S 또는 PT15M)과 초(60s) 및 밀리초(1600ms) 표기 문자열을 지원해요. start_time 및 end_time은 range와 함께 사용할 수 없어요. P12H 범위는 파이프라인이 시작된 시간부터 지난 12시간 동안 수정된 모든 객체를 스캔해요.
buckets 예 List 스캔할 scan buckets 목록이에요.
scheduling 아니요 List 모든 버킷에 대해 주기적 스캔을 예약하는 구성이에요. scheduling이 설정되면 start_time, end_time, range는 사용할 수 없어요.

스캔 버킷

파라미터 필수 유형 설명
bucket 예 Map 각 버킷에 대한 파라미터를 제공해요.

bucket 설정 맵에서 다음 파라미터를 구성할 수 있어요.

파라미터 필수 유형 설명
name 예 String 스캔할 S3 버킷 이름을 나타내는 문자열이에요.
filter 아니요 Filter 필터 구성을 제공해요.
processing_conditions 아니요 List S3 객체가 처리되기 전에 충족되어야 하는 조건 목록이에요. 각 조건은 동일한 S3 디렉터리에 있는 동반 객체를 다운로드하고 그 내용에 대해 when 표현식을 평가해요. 조건이 충족되지 않으면 S3 객체의 처리가 연기되고 재시도돼요. 조건은 레코드당이 아니라 S3 객체당 한 번 평가돼요. processing_conditions를 참조하세요.
start_time 아니요 String 주어진 start_time 이후에 수정된 객체를 스캔하기 시작할 시간이에요. 이 시간은 ISO LocalDateTime 형식을 따라야 해요. 예를 들어 023-01-23T10:00:00 같은 형식이에요. end_time이 start_time과 함께 설정되면 start_time 이후이고 end_time 이전인 모든 객체가 처리돼요. start_time과 range는 함께 사용할 수 없어요. 이 값은 scan 수준의 start_time을 덮어써요.
end_time 아니요 String 주어진 end_time 이후에는 객체가 스캔되지 않아요. 이 시간은 ISO LocalDateTime 형식을 따라야 해요. 예를 들어 023-01-23T10:00:00 같은 형식이에요. start_time이 end_time과 함께 설정되면 start_time 이후이고 end_time 이전인 모든 객체가 처리돼요. 이 값은 scan 수준의 end_time을 덮어써요.
range 아니요 String 모든 버킷에서 객체를 스캔할 시간 범위예요. ISO_8601 표기 문자열(예: PT20.345S 또는 PT15M)과 초(60s) 및 밀리초(1600ms) 표기 문자열을 지원해요. start_time 및 end_time은 range와 함께 사용할 수 없어요. P12H 범위는 파이프라인이 시작된 시간부터 지난 12시간 동안 수정된 모든 객체를 스캔해요. 이 값은 scan 수준의 range를 덮어써요.

필터

filter 구성에서 다음 파라미터를 사용해요.

파라미터 필수 유형 설명
include_prefix 아니요 List 스캔에 포함되는 S3 키 접두사 문자열 목록이에요. 기본적으로 버킷의 모든 객체가 포함돼요.
exclude_suffix 아니요 List 스캔에서 제외되는 S3 키 접미사 문자열 목록이에요. 기본적으로 버킷의 어떤 객체도 제외되지 않아요.

처리 조건

각 processing_conditions 항목에서 다음 파라미터를 사용해요.

파라미터 필수 유형 설명
object_name 예 String 데이터 객체와 동일한 S3 디렉터리에 있는 동반 객체의 이름이에요(예: _SUCCESS 또는 manifest.json). 동반 객체가 다운로드되고 when 표현식에 대해 평가돼요.
when 예 String 동반 객체의 내용에 대해 평가되는 Data Prepper 표현식이에요. 이 표현식이 true로 평가될 때만 S3 데이터 객체가 처리돼요. 예를 들어 /status == "complete" 같은 거예요.
applicable_prefix 아니요 List S3 키 접두사 문자열 목록이에요. 키가 이 접두사 중 하나 이상으로 시작하는 객체에 대해서만 조건이 평가돼요. 생략하면 조건이 버킷의 모든 객체에 적용돼요.
retry_delay 아니요 String 조건이 충족되지 않았을 때 다시 확인하기 전에 기다리는 시간이에요. ISO 8601 기간 형식을 지원해요(예: PT5M). 최소는 PT1M, 최대는 PT60M이에요. 기본값은 PT5M이에요.
max_retry 아니요 Integer 결과에 관계없이 객체를 처리하기 전에 조건을 다시 확인하는 최대 횟수예요. 0부터 100까지의 값을 허용해요. 기본값은 10이에요. 이 한도에 도달하면 객체가 그대로 처리돼요.
codec 아니요 Codec 동반 객체를 구문 분석하는 데 사용되는 코덱 플러그인이에요. 구성되면 when 표현식이 codec에 의해 구문 분석된 첫 번째 레코드에 대해 평가돼요. 생략하면 동반 객체가 평면 JSON 문서로 구문 분석돼요.

다음 예제는 버킷 수준에서 processing_conditions를 구성해요.

- bucket:
    name: batchinference
    data_selection: data_only
    processing_conditions:
      - object_name: "manifest.json.out"
        when: "/processedRecordCount == /totalRecordCount"
        codec:
          ndjson:
        applicable_prefix:
          - "bedrock-batch-job/output/"
        retry_delay: PT2M
        max_retry: 3

{% include copy.html %}

스케줄링

파라미터 필수 유형 설명
interval 예 String 각 스캔 사이의 최소 간격을 나타내요. 간격의 다음 스캔은 마지막 스캔이 끝난 후 간격 시간이 지나고 이전 스캔의 모든 객체가 처리되면 시작돼요. ISO 8601 표기 문자열(예: PT20.345S 또는 PT15M)과 초(60s) 및 밀리초(1600ms) 표기 문자열을 지원해요.
count 아니요 Integer 버킷이 스캔될 횟수를 지정해요. 기본값은 Integer.MAX_VALUE예요.

메트릭

s3 소스에는 다음 메트릭이 포함돼요.

카운터

  • s3ObjectsFailed: s3 소스가 읽지 못한 S3 객체 수예요.
  • s3ObjectsNotFound: S3 "Not Found" 오류로 인해 s3 소스가 읽지 못한 S3 객체 수예요. 이 수는 s3ObjectsFailed에도 포함돼요.
  • s3ObjectsAccessDenied: "Access Denied" 또는 "Forbidden" 오류로 인해 s3 소스가 읽지 못한 S3 객체 수예요. 이 수는 s3ObjectsFailed에도 포함돼요.
  • s3ObjectsSucceeded: s3 소스가 성공적으로 읽은 S3 객체 수예요.
  • s3ObjectNoRecordsFound: s3 소스가 버퍼에 0개의 레코드를 추가한 S3 객체 수예요.
  • s3ObjectsDeleted: s3 소스가 삭제한 S3 객체 수예요.
  • s3ObjectsDeleteFailed: s3 소스가 삭제하지 못한 S3 객체 수예요.
  • s3ObjectsEmpty: 크기가 0이어서 비어 있는 것으로 간주되는 S3 객체 수예요. 이 객체들은 s3 소스에서 건너뛰어요.
  • sqsMessagesReceived: s3 소스가 큐에서 수신한 Amazon SQS 메시지 수예요.
  • sqsMessagesDeleted: s3 소스가 큐에서 삭제한 Amazon SQS 메시지 수예요.
  • sqsMessagesFailed: s3 소스가 구문 분석하지 못한 Amazon SQS 메시지 수예요.
  • sqsMessagesDeleteFailed: s3 소스가 SQS 큐에서 삭제하지 못한 SQS 메시지 수예요.
  • sqsVisibilityTimeoutChangedCount: s3 소스가 SQS 메시지의 가시성 제한 시간을 변경한 횟수예요. 동일한 메시지에 대한 여러 가시성 제한 시간 변경을 포함해요.
  • sqsVisibilityTimeoutChangeFailedCount: s3 소스가 SQS 메시지의 가시성 제한 시간 변경을 실패한 횟수예요. 동일한 메시지에 대한 여러 가시성 제한 시간 변경 실패를 포함해요.
  • acknowledgementSetCallbackCounter: s3 소스가 Data Prepper로부터 승인을 받은 횟수예요.

타이머

  • s3ObjectReadTimeElapsed: s3 소스가 S3 객체를 GET 요청하고, 구문 분석하고, 이벤트를 버퍼에 쓰는 데 걸리는 시간을 측정해요.
  • sqsMessageDelay: S3가 객체를 생성한 시점부터 완전히 구문 분석될 때까지의 경과 시간을 측정해요.

분포 요약

  • s3ObjectSizeBytes: S3 Content-Length가 보고하는 S3 객체의 크기를 측정해요. 압축 객체의 경우 압축된 크기예요.
  • s3ObjectProcessedBytes: 주어진 객체에 대해 s3 소스가 처리한 바이트를 측정해요. 압축 객체의 경우 압축되지 않은 크기예요.
  • s3ObjectsEvents: S3 객체가 생성한 이벤트(때로는 레코드라고 함) 수를 측정해요.

예제: SQS를 사용한 압축되지 않은 로그

다음 pipeline.yaml 파일은 압축되지 않은 개행으로 구분된 로그를 읽기 위한 최소 구성을 보여줘요.

source:
  s3:
    notification_type: sqs
    codec:
      newline:
    compression: none
    sqs:
      queue_url: "https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue"
    aws:
      region: "us-east-1"
      sts_role_arn: "arn:aws:iam::123456789012:role/Data-Prepper"

예제: 스캔을 사용한 압축되지 않은 로그

다음 pipeline.yaml 파일은 압축되지 않은 개행으로 구분된 로그로 객체를 스캔하기 위한 최소 구성을 보여줘요.

source:
  s3:
    codec:
      newline:
    compression: none
    aws:
      region: "us-east-1"
      sts_role_arn: "arn:aws:iam::123456789012:role/Data-Prepper"
    scan:
      start_time: 2023-01-01T00:00:00
      range: "P365D"
      buckets:
        - bucket:
            name: "s3-scan-test"
            filter:
              exclude_suffix:
                - "*.log"

더 알아보기 (Learn more)