認定ビッグデータ - 専門知識 勉強記~DynamoDB~


今回は DynamoDB の大容量データに関しての勉強記録となる.なお,記事は適宜更新していく.
また,DynamoDBの雑多なまとめ記事はこちらに書いている.

ビッグデータ関連でのDynamoDB

DynamoDB は、分析、データウェアハウス、データのインポート/エクスポート、バックアップ、およびアーカイブの目的でEMR、Redshift、Data Pipeline、S3などの他のサービスと統合される

大きな項目と属性を格納するベストプラクティス

1つ以上の大きな属性を圧縮するか:圧縮するとコストが削減される。GZIPやLZOなどの圧縮はバイナリで、バイナリ属性タイプに格納できる
S3にオブジェクトとして格納して、メタデータをDynamoにいれるか

大容量ストリームのイベントの設計

・単一のWCUで捌ける各イベント項目のサイズ(1kb以下)を決める。
・1つの物理パーティション(10GB)に治るイベント項目の数を予測する
・毎秒書き込まれる受信イベント数を予測する
・期間ごとに1つのテーブルを作り直す
・古いデータは、S3やGlacierにアーカイブしてテーブルを削除する

ユースケース

読み書きのレイテンシーが低く、コードの変更やダウンタイムを伴わずにストレージとスループットを必要に応じてスケールアップ/ダウンできる柔軟なNoSQLデータベースを必要とするアプリケーションに最適

  • モバイルアプリ
  • ゲーム
  • デジタル広告サービス
  • ライブ投票
  • ライブイベントへのオーディエンス参加
  • センサーネットワーク
  • ログ処理
  • ウェブベースコンテンツへのアクセスコントロール
  • S3 オブジェクトのメタデータストレージ
  • e コマースショッピングカート
  • ウェブセッション管理