

신중한 고려 끝에 Amazon Kinesis Data Analytics for SQL 애플리케이션을 중단하기로 결정했습니다.

1. **2025년 9월 1**일부터 Amazon Kinesis Data Analytics for SQL 애플리케이션에 대한 버그 수정은 제공되지 않습니다. 곧 중단될 예정이므로 지원이 제한될 예정이기 때문입니다.

2. **2025년 10월 15**일부터 새 Kinesis Data Analytics for SQL 애플리케이션을 생성할 수 없습니다.

3. **2026년 1월 27**일부터 애플리케이션이 삭제됩니다. Amazon Kinesis Data Analytics for SQL 애플리케이션을 시작하거나 작동할 수 없게 됩니다. 그 시점부터 Amazon Kinesis Data Analytics for SQL에 대한 지원을 더 이상 이용할 수 없습니다. 자세한 내용은 [Amazon Kinesis Data Analytics for SQL 애플리케이션 단종](discontinuation.md) 단원을 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사전 처리용 Lambda 함수 생성
<a name="lambda-preprocessing-functions"></a>

Amazon Kinesis Data Analytics 애플리케이션은 애플리케이션으로 수집되는 레코드를 사전 처리하는 데 Lambda 함수를 사용할 수 있습니다. Kinesis Data Analytics는 콘솔에서 데이터 사전 처리를 위한 출발점으로 사용할 수 있는 다음과 같은 템플릿을 제공합니다.

**Topics**
+ [Node.js에서 Lambda 사전 처리 함수 생성](#lambda-preprocessing-functions-nodejs)
+ [Python에서 사전 처리 함수 생성](#lambda-preprocessing-functions-python)
+ [Java에서 사전 처리 함수 생성](#lambda-preprocessing-functions-java)
+ [.NET에서 Lambda 사전 처리 함수 생성](#lambda-preprocessing-functions-net)

## Node.js에서 Lambda 사전 처리 함수 생성
<a name="lambda-preprocessing-functions-nodejs"></a>

Node.js에서 Lambda 사전 처리 함수 생성에 사용할 아래의 템플릿은 Kinesis Data Analytics 콘솔에서 사용할 수 있습니다.


| Lambda 창사진 | 언어 및 버전 | 설명 | 
| --- | --- | --- | 
| 일반 Kinesis Data Analytics 입력 처리  | Node.js 6.10 |  Kinesis Data Analytics는 JSON 또는 CSV 레코드를 입력으로 수신한 다음 사전 처리 상태로 반환하는 사전 처리 프로세서를 기록합니다. 이 프로세서를 맞춤 변환 로직에 대한 시작점으로 사용합니다.  | 
| 압축된 입력 처리 | Node.js 6.10 | Kinesis Data Analytics는 압축된(GZIP 또는 Deflate 압축) JSON 또는 CSV 레코드를 입력으로 수신하고 압축 해제된 레코드를 처리 상태로 반환하는 사전 처리 프로세서를 기록합니다. | 

## Python에서 사전 처리 함수 생성
<a name="lambda-preprocessing-functions-python"></a>

Python에서 Lambda 사전 처리 함수를 생성하기 위한 아래의 템플릿은 콘솔에서 사용할 수 있습니다:


| Lambda 청사진 | 언어 및 버전 | 설명 | 
| --- | --- | --- | 
| 일반 Kinesis Analytics 입력 처리  | Python 2.7 |  Kinesis Data Analytics는 JSON 또는 CSV 레코드를 입력으로 수신한 다음 사전 처리 상태로 반환하는 사전 처리 프로세서를 기록합니다. 이 프로세서를 맞춤 변환 로직에 대한 시작점으로 사용합니다.  | 
| KPL 입력 처리 | Python 2.7 | Kinesis Data Analytics는 JSON의 Kinesis Producer Library (KPL) 집합 또는 CSV 레코드를 입력으로 수신한 다음 처리 상태와 함께 분리된 기록 반환을 기록합니다. | 

## Java에서 사전 처리 함수 생성
<a name="lambda-preprocessing-functions-java"></a>

Java에서 레코드 사전 처리용 Lambda 함수를 생성하려면 [Java 이벤트](https://github.com/aws/aws-lambda-java-libs/tree/master/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events) 클래스를 사용하십시오.

다음 코드는 Java를 사용하여 레코드를 사전 처리하는 Lambda 함수 샘플입니다:

```
public class LambdaFunctionHandler implements
        RequestHandler<KinesisAnalyticsStreamsInputPreprocessingEvent, KinesisAnalyticsInputPreprocessingResponse> {

    @Override
    public KinesisAnalyticsInputPreprocessingResponse handleRequest(
            KinesisAnalyticsStreamsInputPreprocessingEvent event, Context context) {
        context.getLogger().log("InvocatonId is : " + event.invocationId);
        context.getLogger().log("StreamArn is : " + event.streamArn);
        context.getLogger().log("ApplicationArn is : " + event.applicationArn);

        List<KinesisAnalyticsInputPreprocessingResponse.Record> records = new ArrayList<KinesisAnalyticsInputPreprocessingResponse.Record>();
        KinesisAnalyticsInputPreprocessingResponse response = new KinesisAnalyticsInputPreprocessingResponse(records);

        event.records.stream().forEach(record -> {
            context.getLogger().log("recordId is : " + record.recordId);
            context.getLogger().log("record aat is :" + record.kinesisStreamRecordMetadata.approximateArrivalTimestamp);
             // Add your record.data pre-processing logic here.                               
            // response.records.add(new Record(record.recordId, KinesisAnalyticsInputPreprocessingResult.Ok, <preprocessedrecordData>));
        });
        return response;
    }

}
```

## .NET에서 Lambda 사전 처리 함수 생성
<a name="lambda-preprocessing-functions-net"></a>

.NET에서 레코드 사전 처리용 Lambda 함수를 생성하려면 [.NET 이벤트](https://github.com/aws/aws-lambda-dotnet/tree/master/Libraries/src/Amazon.Lambda.KinesisAnalyticsEvents) 클래스를 사용합니다.

다음 코드는 C\$1을 사용하여 레코드를 사전 처리하는 Lambda 함수 예입니다:

```
public class Function
    {
        public KinesisAnalyticsInputPreprocessingResponse FunctionHandler(KinesisAnalyticsStreamsInputPreprocessingEvent evnt, ILambdaContext context)
        {
            context.Logger.LogLine($"InvocationId: {evnt.InvocationId}");
            context.Logger.LogLine($"StreamArn: {evnt.StreamArn}");
            context.Logger.LogLine($"ApplicationArn: {evnt.ApplicationArn}");

            var response = new KinesisAnalyticsInputPreprocessingResponse
            {
                Records = new List<KinesisAnalyticsInputPreprocessingResponse.Record>()
            };

            foreach (var record in evnt.Records)
            {
                context.Logger.LogLine($"\tRecordId: {record.RecordId}");
                context.Logger.LogLine($"\tShardId: {record.RecordMetadata.ShardId}");
                context.Logger.LogLine($"\tPartitionKey: {record.RecordMetadata.PartitionKey}");
                context.Logger.LogLine($"\tRecord ApproximateArrivalTime: {record.RecordMetadata.ApproximateArrivalTimestamp}");
                context.Logger.LogLine($"\tData: {record.DecodeData()}");

                // Add your record preprocessig logic here.

                var preprocessedRecord = new KinesisAnalyticsInputPreprocessingResponse.Record
                {
                    RecordId = record.RecordId,
                    Result = KinesisAnalyticsInputPreprocessingResponse.OK
                };
                preprocessedRecord.EncodeData(record.DecodeData().ToUpperInvariant());
                response.Records.Add(preprocessedRecord);
            }
            return response;
        }
    }
```

.NET에서 사전 처리 및 목적지용 Lambda 함수 생성에 대한 자세한 설명은 [https://github.com/aws/aws-lambda-dotnet/tree/master/Libraries/src/Amazon.Lambda.KinesisAnalyticsEvents](https://github.com/aws/aws-lambda-dotnet/tree/master/Libraries/src/Amazon.Lambda.KinesisAnalyticsEvents)를 참조하십시오.