memorycraftです。

この記事は「CDP Advent Calendar 2013」12/9用の記事です。

前回前々回でKinesisを触りました。
資料などみていく中で、ストリームの終端になりえるものに、Redshift, S3, EMR, DynamoDBなどの他に、別のKinesisストリームもありえるということを知りました。
処理の内容が単純、高速であったり、データ数が少ない場合には1つのConsumerで事足りると思いますが、あまりにも大量であったり、処理の幾つかに非常に時間の掛かるものがあったり、複合的な処理が必要な場合には、複数のストリームを使うと全体の効率が上がる場合があるかと思います。

これは、CDPQueuing Chainパターンの派生的なものになるかと思います。
そこで、別のKinesisストリームに流すにはどういう場合が有効かを考えてみました。

■Stream Chianパターン

・統計的な処理を連続して行う場合、Producerが投入したデータ単位と、1つ目の処理が終わったデータ単位が異なる場合があります。その場合も1つ目が終わったときに別のストリームを使います。

・処理全体の中で、負荷の高い部分と低い部分を分けて別に処理を行うことで、
コストの最適化を行うことも考えられます。

・共通処理もあるが、データの種類によって個別の処理が必要という時も別のストリームを使える場合があります。

・おまけ:JettyをProducerにして、3つストリームのチェーンを使うと、ジェットストリームアタックになります。

最後のが言いたかっただけでした。
以上です。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら