

신중한 고려 끝에 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) 단원을 참조하십시오.

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

# 애플리케이션 내 스트림과 펌프
<a name="streams-pumps"></a>

[애플리케이션 입력](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html)을 구성할 때 스트리밍 소스를 생성된 애플리케이션 내 스트림에 매핑합니다. 데이터는 스트리밍 소스에서 애플리케이션 내 스트림으로 연속적으로 흐릅니다. 애플리케이션 내 스트림은 SQL 문을 사용하여 쿼리할 수 있는 표와 같이 작동하지만 연속적인 데이터 흐름을 나타내기 때문에 스트림이라고 합니다.

**참고**  
애플리케이션 내 스트림을 Amazon Kinesis Data Streams 및 Firehose 전송 스트림과 혼동하지 마세요. 애플리케이션 내 스트림은 Amazon Kinesis Data Analytics 애플리케이션의 컨텍스트에서만 존재합니다. Kinesis 데이터 스트림과 Firehose 전송 스트림은 애플리케이션과 독립적으로 존재합니다. 애플리케이션 입력 구성에서 스트리밍 소스로 구성하거나 출력 구성에서 대상 주소로 구성할 수 있습니다.

필요에 따라 애플리케이션 내 스트림을 추가로 생성하여 중간 쿼리 결과를 저장할 수도 있습니다. 애플리케이션 내 스트림 생성 프로세스는 2개 단계로 구성됩니다. 먼저 애플리케이션 내 스트림을 생성한 다음 펌프를 사용하여 데이터를 스트림에 삽입합니다. 예를 들어, 명칭이 `INPUTSTREAM`인 애플리케이션 내 스트림을 생성하도록 애플리케이션 입력을 구성한다고 가정해 보겠습니다. 다음 예에서 또 다른 스트림(`TEMPSTREAM`)을 생성한 다음 펌프를 사용하여 `INPUTSTREAM`로부터 데이터를 생성된 스트림에 삽입합니다.

1. 다음과 같이 세 열을 지닌 애플리케이션 내 스트림(`TEMPSTREAM`)을 생성합니다.

   ```
   CREATE OR REPLACE STREAM "TEMPSTREAM" ( 
      "column1" BIGINT NOT NULL, 
      "column2" INTEGER, 
      "column3" VARCHAR(64));
   ```

   열 명칭을 따옴표로 지정하여 대소문자를 구분하도록 합니다. 자세한 설명은 *Amazon Kinesis Data Analytics SQL 참조*에서 [식별자를](https://docs.aws.amazon.com/kinesisanalytics/latest/sqlref/sql-reference-identifiers.html) 참조하십시오.

1. 펌프를 사용하여 데이터를 스트림에 삽입합니다. 펌프는 한 애플리케이션 내 스트림에서 다른 애플리케이션 내 스트림에 데이터를 삽입하는 연속적인 삽입 쿼리입니다. 다음 명령문을 통해 펌프(`SAMPLEPUMP`)를 생성하고 또 다른 스트림(`INPUTSTREAM`)에서 레코드를 선택함으로써 데이터를 `TEMPSTREAM`에 삽입합니다.

   ```
   CREATE OR REPLACE PUMP "SAMPLEPUMP" AS 
   INSERT INTO "TEMPSTREAM" ("column1", 
                             "column2", 
                             "column3") 
   SELECT STREAM inputcolumn1, 
                 inputcolumn2, 
                 inputcolumn3
   FROM "INPUTSTREAM";
   ```

복수의 작성자가 애플리케이션 내 스트림에 삽입하도록 할 수 있으며, 해당 스트림에서 복수의 구독자가 선택되도록 할 수 있습니다. 애플리케이션 내 스트림을 게시/구독 메시징 패러다임을 구현하는 것으로 생각하십시오. 이 패러다임에서 생성 시간 및 수신 시간을 포함한 데이터 행은 전통적인 RDBMS에 저장할 필요 없이 스트리밍 SQL 문의 캐스케이드에 의해 생성 시간 및 수신 시간을 포함하여 데이터 행이 처리, 해석 및 전달될 수 있는 PUB/SUB 메시징 패러다임의 구현으로 애플리케이션 내 스트림을 생각할 수 있습니다.

애플리케이션 내 스트림이 생성된 후에 정상적인 SQL 쿼리를 수행할 수 있습니다.

**참고**  
스트림을 쿼리할 때 대부분의 SQL 문은 행 기반 또는 시간 기반 윈도우를 사용하여 구속됩니다. 자세한 설명은 [윈도우 모드 쿼리](windowed-sql.md) 섹션을 참조하십시오.

스트림을 조인할 수도 있습니다. 스트림 조인에 대한 예는 [스트리밍 데이터 작업: 스트림 조인](stream-joins-concepts.md) 섹션을 참조하십시오.