🐿️

Kinesis Data Analyticsチュートリアルをローカルで動かす

2021/04/29に公開

Kinesis Data Analyticsチュートリアルとは

AWSのmanaged Apache Flink環境、Kinesis Data Analytics(KDA)のチュートリアルです。

なんでローカルで動かしたいの?

動作確認とかの時便利。

準備

Flinkのドキュメントに記載の通り、

  1. Flinkパッケージのダウンロード・解凍
  2. start-clusterの実行

を行います(Session Mode)。なお、Docker・Kubernetesの上で動かすこともできます。

Getting Started

Kinesis Data Streamとデータの読み書きを行うGetting Startedの場合、特にコードを変更することなく、

コンパイル

mvn package -Dflink.version=1.11.1

後、jarをサブミット

~/Downloads/flink-1.11.3/bin/flink run ../GettingStarted/target/aws-kinesis-analytics-java-apps-1.0.jar

すれば実行できました。

Beam

Beamのチュートリアルの場合はコードの変更が必要です。

これは、Kinesis Data Streamの設定取得のために、KDA特有の
argsFromKinesisApplicationProperties
メソッドを使っている(↓)ためです。

        String[] kinesisArgs = BasicBeamStreamingJobOptionsParser.argsFromKinesisApplicationProperties(args, BEAM_APPLICATION_PROPERTIES);

KDAのRuntime Propertiesから設定を取得するメソッドなので、他の方法(例えば下のように文字列をコードに埋め込み)すれば、ローカルのFlinkでも実行することができます。
(KDAでないFlinkに、Runtime Properties相当の物があるかは不明…)

// KDA依存の箇所をコメントアウト
//        String[] kinesisArgs = BasicBeamStreamingJobOptionsParser.argsFromKinesisApplicationProperties(args, BEAM_APPLICATION_PROPERTIES);
	
        String[] kinesisArgs = {"--inputStreamName=ExampleInputStream", "--outputStreamName=ExampleOutputStream", "--awsRegion=us-west-2"};

Discussion