Kinesisをいろいろ試してみる時にKinesis CLIを使ってデータを登録して動きを確認した。
プログラムを作るよりもKinesis CLIを使った方が便利に試せる。
そのときに使ったコマンドのメモ。
ストリームの操作
ストリームの作成
一つのShardは一秒間に1MBまたは1000件のデータ書き込みまでしかできないという制限がある。これを超えるリクエストが想定されるストリームの場合、shardの数を増やす必要がある。
aws kinesis create-stream --stream-name Foo --shard-count 1
ストリームの削除
aws kinesis delete-stream --stream-name Foo
ストリームの一覧を表示
aws kinesis list-streams
ストリームの状態を確認
aws kinesis describe-stream --stream-name Foo
データ操作
ストリームにデータを登録する
data
に登録したいデータを記述する。JSONで記述する場合、JSON内のダブルコーテーションはバックスラッシュでエスケープする必要がある点に注意する。
aws kinesis put-record --stream-name Foo --partition-key 123 --
data "{\"name\":\"tanaka\", \"age\": 23}"
データの取り出し
- 最初にShard-iteratorを取得し、それを使ってデータを取得する。 ShardIteratorはどこまでのデータを取得したかを示すアンカーの役割をしている。
- 同じShardIteratorを使ってget-recoredsすると、同じデータが何度も取れる。
- get-recordsした時に送られてくるnextShardIteratorを使うと、受信したデータ移行のデータのみを取得することができる。
#Shard Iteratorの取得
SHARD_ITERATOR=$(aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name Foo --query 'ShardIterator')
#レコードの取得
aws kinesis get-records --shard-iterator $SHARD_ITERATOR
出典:
Perform Basic Kinesis Data Stream Operations Using the AWS CLI
https://docs.aws.amazon.com/streams/latest/dev/fundamental-stream.htmlKinesisの制限
https://docs.aws.amazon.com/streams/latest/dev/service-sizes-and-limits.html