지속 가능한 상태의 애플리케이션으로 배포 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink는 이전에 Amazon Kinesis Data Analytics for Apache Flink로 알려졌습니다.

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

지속 가능한 상태의 애플리케이션으로 배포

코드를 빌드하고 Amazon S3로 내보낼 수 있습니다. 노트에 작성한 코드를 지속적으로 실행되는 스트림 처리 애플리케이션으로 승격할 수 있습니다. Managed Service for Apache Flink에서 Apache Flink 애플리케이션을 실행하는 두 가지 모드가 있습니다. Studio 노트북을 사용하면 코드를 대화형 방식으로 개발하고, 코드 결과를 실시간으로 보고, 노트 내에서 시각화할 수 있습니다. 스트리밍 모드에서 실행할 노트를 배포하면 Managed Service for Apache Flink가 지속적으로 실행되는 애플리케이션을 생성하고, 소스에서 데이터를 읽고, 대상에 쓰고, 장기 실행 애플리케이션 상태를 유지하고, 소스 스트림의 처리량에 따라 자동으로 스케일링하는 애플리케이션을 생성합니다.

참고

애플리케이션 코드를 내보내는 S3 버킷은 Studio 노트북과 동일한 리전에 있어야 합니다.

다음 기준을 충족하는 경우에만 Studio 노트북의 노트를 배포할 수 있습니다.

  • 단락은 순차적으로 정렬해야 합니다. 애플리케이션을 배포하면 노트 내의 모든 단락이 노트에 표시된 대로 순차적으로 (left-to-right, top-to-bottom) 실행됩니다. 노트에서 모든 단락 실행을 선택하여 이 순서를 확인할 수 있습니다.

  • 코드는 Python과 SQL 또는 Scala와 SQL의 조합입니다. 현재는 Python과 Scala를 함께 지원하지 않습니다. deploy-as-application

  • 노트에는%flink, %flink.ssql, %flink.pyflink, %flink.ipyflink, %md와(과) 같은 인터프리터만 있어야 합니다.

  • Zeppelin 컨텍스트 객체 z의 사용은 지원되지 않습니다. 아무것도 반환하지 않는 메서드는 경고를 기록하는 것 외에는 아무것도 수행하지 않습니다. 다른 메서드는 Python 예외를 발생시키거나 Scala에서 컴파일하지 못합니다.

  • 노트 하나로 Apache Flink 작업이 한 번 발생해야 합니다.

  • 동적 양식이 포함된 노트는 애플리케이션으로 배포할 수 없습니다.

  • %md (Markdown) 단락은 애플리케이션의 일부로 실행하기에 부적합한 사람이 읽을 수 있는 문서를 포함할 것으로 예상되어 애플리케이션으로 배포할 때는 생략됩니다.

  • Zeppelin 내에서 실행되지 않는 문단은 애플리케이션으로 배포할 때 생략됩니다. 비활성화된 단락이 호환되지 않는 인터프리터를 사용하는 경우, 예를 들어 %flink and %flink.ssql 인터프리터가 있는 노트 %flink.ipyflink을(를) 사용하더라도 노트를 애플리케이션으로 배포하는 동안에는 해당 단락을 건너뛰고 오류가 발생하지 않습니다.

  • 응용 프로그램 배포가 성공하려면 실행할 수 있는 소스 코드 (Flink SQL PyFlink 또는 Flink Scala) 가 포함된 단락이 하나 이상 있어야 합니다.

  • 단락 내에서 인터프리터 지시문에 병렬성을 설정하는 경우 (예: %flink.ssql(parallelism=32)) 노트에서 배포된 애플리케이션에서는 무시됩니다. 대신 AWS Management Console, AWS Command Line Interface 또는 AWS API를 통해 배포된 응용 프로그램을 업데이트하여 응용 프로그램에 필요한 병렬성 수준에 따라 병렬성 및/또는 ParallelismPer KPU 설정을 변경하거나 배포된 응용 프로그램의 자동 크기 조정을 활성화할 수 있습니다.

  • 지속 가능한 상태의 애플리케이션으로 배포하는 경우 VPC는 인터넷에 액세스할 수 있어야 합니다. VPC가 인터넷에 액세스할 수 없는 경우 인터넷에 접속할 수 없는 VPC에서 지속 가능한 상태의 애플리케이션으로 배포 섹션을 참조하세요.

Scala/Python 기준

  • Scala 또는 Python 코드에서는 이전의 “Flink” 플래너(Scala용 senv, stenv; Python용 s_env, st_env)가 아닌 Blink 플래너 (Scala의 경우 stenv_2, Python의 경우 st_env_2)를 사용하세요. Apache Flink 프로젝트에서는 프로덕션 사용 사례에 Blink 플래너를 사용할 것을 권장하는데, 이 플래너는 Zeppelin과 Flink의 기본 플래너입니다.

  • Python 단락은 애플리케이션으로 배포하기 위한 노트와 같이 ! 또는 %timeit와(과) %conda같은 IPython 매직 명령을 사용하여 셸 호출/할당을 사용해서는 안 됩니다.

  • mapfilter 같은 고차 데이터 흐름 연산자에 전달되는 함수의 파라미터로는 Scala 케이스 클래스를 사용할 수 없습니다. Scala 케이스 클래스에 대한 자세한 내용은 Scala 설명서의 케이스 클래스를 참조하세요

SQL 기준

  • 데이터를 전달할 수 있는 단락의 출력 섹션과 같은 곳이 없기 때문에 단순 SELECT 문은 허용되지 않습니다.

  • 어떤 단락에서든 DDL 문 (USE, CREATE, ALTER, DROP,SET, RESET) 은 DML(INSERT) 문 앞에 와야 합니다. 이는 한 단락의 DML 명령문을 단일 Flink 작업으로 함께 제출해야 하기 때문입니다.

  • DML 명령문이 포함된 단락은 최대 하나여야 합니다. 이 deploy-as-application 기능의 경우 Flink에 단일 작업을 제출하는 것만 지원하기 때문입니다.

자세한 내용과 예제는 Amazon Managed Service for Apache Flink, Amazon Translate 및 Amazon Comprehend에서 SQL 함수를 사용하여 스트리밍 데이터를 번역, 편집 및 분석하기를 참조하세요.