今回は DynamoDB の大容量データに関しての勉強記録となる.なお,記事は適宜更新していく.
また,DynamoDBの雑多なまとめ記事はこちらに書いている.
ビッグデータ関連でのDynamoDB
DynamoDB は、分析、データウェアハウス、データのインポート/エクスポート、バックアップ、およびアーカイブの目的でEMR、Redshift、Data Pipeline、S3などの他のサービスと統合される
大きな項目と属性を格納するベストプラクティス
1つ以上の大きな属性を圧縮するか:圧縮するとコストが削減される。GZIPやLZOなどの圧縮はバイナリで、バイナリ属性タイプに格納できる
S3にオブジェクトとして格納して、メタデータをDynamoにいれるか
大容量ストリームのイベントの設計
・単一のWCUで捌ける各イベント項目のサイズ(1kb以下)を決める。
・1つの物理パーティション(10GB)に治るイベント項目の数を予測する
・毎秒書き込まれる受信イベント数を予測する
・期間ごとに1つのテーブルを作り直す
・古いデータは、S3やGlacierにアーカイブしてテーブルを削除する
ユースケース
読み書きのレイテンシーが低く、コードの変更やダウンタイムを伴わずにストレージとスループットを必要に応じてスケールアップ/ダウンできる柔軟なNoSQLデータベースを必要とするアプリケーションに最適
- モバイルアプリ
- ゲーム
- デジタル広告サービス
- ライブ投票
- ライブイベントへのオーディエンス参加
- センサーネットワーク
- ログ処理
- ウェブベースコンテンツへのアクセスコントロール
- S3 オブジェクトのメタデータストレージ
- e コマースショッピングカート
- ウェブセッション管理