LoginSignup
3
1

More than 5 years have passed since last update.

AWS Kinesis 初心者向けの考え方

Last updated at Posted at 2018-10-10

AWS Kinesis

ネタざっくり備忘録

AWS Cli

Kinesisがどういうやり取りしてるかは、AWSCLI実行するのが一番わかりやすい。
※公式https://docs.aws.amazon.com/ja_jp/streams/latest/dev/fundamental-stream.html

細かい動作が書いてあるところ(読み取り時の細かい挙動とか)

Streamって何

データが溜まってるところ。
Streamに溜まるデータはパーティションキーによってシャードに割り当てられる(シャード数によって割り当てられるシャードが変わる)

シャードって何

Streamにたまっているデータをコンシューマに渡すための口。
Streamを作るときにシャードの数を指定できる。
Stream内のデータを取得するためのがシャードが決まっている(というかStreamにデータを登録する時点でそのデータがどのシャードで取得できるかが割り当てられる)
cli使うと分かるけど、データの取得はシャードに対して行う。

Kinesisのシャードの割り当てのルール

Patition key の値に応じてどのシャードを使うかが割り当てされる。
※シャードを増やした状態でawscli使ってput-recordsした結果見ると感覚が掴みやすい。

シャードの読み込み位置の話

シャードイテレータを取得する時の指定の仕方で、シャードの最初からとか、指定したシーケンスの続きからとかが指定できる。

※aws cliだと↓の赤字部分

aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name Foo

KinesisClientLiblary(KCL)におけるLATESTとTRIM_HORIZONの挙動について

チェックポイント

DynamoDBにシャード単位?で、どこまで読み込んだかのシーケンスが記録されていて、シーケンスを記録するアクションがチェックポイント。
チェックポイントに記録されているシーケンス番号より古いシーケンス番号でチェックポイントを記録しようとすると実行時例外。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1