eijiコメントはこの投稿ではオフになっています。KinesisKinesisでは、シャードと呼ばれるストリーム単位で処理される。事前に設定するシャードの数が並列に処理を行う土管の数となる。Kinesisを設定する際にこのシャードの数を指定するが、実際の負荷に合わせてシャード数を変化させることができる。これがリシャーディングである。リシャーディングは単純に数の増減をするだけではなく、「どのシャードを分割するのか」や「どのシャードとどのシャードを分割するのか」を指定する必要がある。通常はどのシャードに負荷が掛かっているかをCloudWatchなどを用いて計測してリシャーディングを決定する。シャードの結合は、隣接したシャード同士で無いと実現できない。GitHubリシャーディング処理をコマンドライン上で実現するツールがGitHub上で公開されている。以下のようにパラメータを記述することで、リシャーディングを実行できる。ScalingClient実行する際のオプションパラメータは以下の通り。eijiコメントはこの投稿ではオフになっています。Applicationと呼ばれるプログラムを作成することができる。Applicationは、Kinesisからデータを取得し、DynamoDBやRedshift、S3などにKinesisストリームを転送することが可能である。Libraryが、複数のインスタンス間での負荷分散、インスタンスの障害に対する応答、処理済みのレコードのチェックポイント作成、リシャーディングへの対応などを行うので、ユーザはデータ処理部分のみに注力することができる。Libraryは、アプリケーション毎にDynamoDBに特別なテーブルを作成して各アプリケーションの状態を追跡する。テーブルには、どのデータまでが読み込み済みであるかを示すチェックポイントの値などのアプリケーションの状態を示す情報が、シャード毎に記録される。テーブル名は、プログラム上で指定したアプリケーション名と同一である。回のスループットを持つテーブルが生成されるが、シャード数が多い場合などはスペックが足りなくなる場合があるので注意が必要である。Libraryは、1つのWorkerで複数のシャード処理を実行することが可能である。1つのシャードを複数のWorkerで処理することはできない。シャード数よりも多い数のWorkerを立ち上げても処理は実行されないので注意が必要である。Role(InstanceProfileCredentialsProvider)から取得する方法に変更することも可能である。いう多言語インターフェイスを通して他の言語でも機能が提供されている。Eclipseに付属するサンプルアプリケーションとJavaライブラリを使用してKinesisからデータを取得する。LibraryをEC2で実行する場合は、EC2上にJavaの実行環境を用意する必要がある。Libraryを実行するのに必要なパーミッションは以下の通り。リージョン指定が無いとデフォルトのバージニア州(us-east-1)が指定されてしまう。サンプルアプリケーションでは以下の設定を変更する必要がある。上述の通りデフォルトの最大取得数は10000である。これを変更するには以下を追記する。取得したデータをもとに独自処理を追加するためには、以下の箇所にデータを追記する。//JSONのパースには、Jacksonというライブラリが便利である。com.fasterxml.jackson.databind.ObjectMapper;JSON上のKeyを指定し、変数として抽出/処理することも可能である。インターフェイスのバージョン2を使用することが可能である。projectでは、現在もv1対応のサンプルプログラムのみ公開されており、v2対応のものは存在しない。v1とv2では、以下のようにいくつかメソッドのパラメータに変更が生じている。Library(ワーカーの挙動など)の状態監視を行うことができる。サービスと連携してデータを受け渡すことができる。(1)アーカイブ2020年2月2020年1月2019年12月2019年11月2019年10月2019年9月2019年8月2019年4月2019年3月2019年2月2019年1月2018年12月2018年11月2018年4月2017年4月2016年12月2016年11月2016年10月2016年8月2016年5月2016年4月2016年3月2016年1月2015年12月2015年11月2015年10月2015年9月2015年5月2015年4月2015年2月2012年5月2012年4月2011年6月メタ情報ログイン投稿フィードコメントフィードWordPress.org。