애플리케이션 내 스트림과 펌프 - Amazon Kinesis Data Analytics for SQL 애플리케이션 개발자 안내서

새 프로젝트의 경우 Kinesis Data Analytics for SQL 애플리케이션보다 새로운 Managed Service for Apache Flink Studio를 사용하는 것이 좋습니다. Managed Service for Apache Flink Studio는 사용 편의성과 고급 분석 기능을 결합하여 정교한 스트림 처리 애플리케이션을 몇 분 만에 구축할 수 있도록 합니다.

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

애플리케이션 내 스트림과 펌프

애플리케이션 입력을 구성할 때 스트리밍 소스를 생성된 애플리케이션 내 스트림에 매핑합니다. 데이터는 스트리밍 소스에서 애플리케이션 내 스트림으로 연속적으로 흐릅니다. 애플리케이션 내 스트림은 SQL 문을 사용하여 쿼리할 수 있는 표와 같이 작동하지만 연속적인 데이터 흐름을 나타내기 때문에 스트림이라고 합니다.

참고

애플리케이션 내 스트림을 Amazon Kinesis 데이터 스트림 및 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 참조에서 식별자를 참조하십시오.

  2. 펌프를 사용하여 데이터를 스트림에 삽입합니다. 펌프는 한 애플리케이션 내 스트림에서 다른 애플리케이션 내 스트림에 데이터를 삽입하는 연속적인 삽입 쿼리입니다. 다음 명령문을 통해 펌프(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 문은 행 기반 또는 시간 기반 윈도우를 사용하여 구속됩니다. 자세한 설명은 윈도우 모드 쿼리 섹션을 참조하세요.

스트림을 조인할 수도 있습니다. 스트림 조인에 대한 예는 스트리밍 데이터 작업: 스트림 조인 섹션을 참조하십시오.