RDB脳はあなたに送る KVSモデリングのノウハウを公開! AWS DynamoDB、AzureCosmosDBでのKVS設計はこうしよう!

3ff23de3d76bebc9b63f18a49122ea7f?s=47 mogamin
December 01, 2020

RDB脳はあなたに送る KVSモデリングのノウハウを公開! AWS DynamoDB、AzureCosmosDBでのKVS設計はこうしよう!

近年のデータベースモデリングでは、RDBだけでは対応できなくなりました。パフォーマンスを求め正規化を崩してまでも実装することが多くなったKVS。RDB脳なあなたにお送りするKVSモデリングのノウハウをご紹介します。

3ff23de3d76bebc9b63f18a49122ea7f?s=128

mogamin

December 01, 2020
Tweet

Transcript

  1. None
  2. None
  3. ◼ ◼ ◼

  4. ◼ ◼

  5. ◼ ◼

  6. ◼ ◼

  7. ◼ ⚫ ⚫ ⚫ ⚫ ⚫ ◼

  8. ◼ ⚫ ⚫

  9. ◼ ✓ ✓ ⚫ ⚫

  10. None
  11. ◼ ◼

  12. None
  13. ◼ ◼

  14. ◼ ⚫ ✓ ⚫ ✓ ✓

  15. ◼ C R U D M I T 1 シナリオA

    1-1 ログイン処理 ログイン メールアドレス、パスワードで認証する 1 1 1 Q メールアドレス ハッシュパスワード、有効フラグ 1-2 トークン発行 トークンを発行する 1 1 1 G IDPメタデータ 優先順位(値) 1-3 セッション情報保存 セッション情報の有効期間取得 1 1 G 設定、セッション保存期間 セッション保存期間 1-4 後続処理で使用する受信・送信パラメータを セッションIDに紐づけて保存 1 1 PD セッションID 状態、有効期限、スコープ、削除日時 2 シナリオB 2-1 ・・・ ・・・ 2-2 ・・・ 2-3 ・・・ 検索項目 操作対象の項目 機能概要 機能 機能分類 # 操作 テーブル 操作
  16. ◼ C R U D M I T 1 1

    1 Q メールアドレス ハッシュパスワード、有効フラグ 1 1 1 G IDPメタデータ 優先順位(値) 1 1 G 設定、セッション保存期間 セッション保存期間 メータを 1 1 PD セッションID 状態、有効期限、スコープ、削除日時 検索項目 操作対象の項目 操作 テーブル 操作 操作詳細 P PD G GS Q QS U D 読み込み 読み込み(強い整合性) 検索 検索(強い整合性) 更新(属性指定) 削除 内容 書き込み・更新(上書き) 書き込み(重複チェック)
  17. ◼ 新規 既存 他 Q 1 1 メールアドレス ハッシュパスワード、有効フラグ G

    1 1 IDPメタデータ 優先順位(値) G 1 1 設定、セッション保存期間 セッション保存期間 PD 1 1 セッションID 状態、有効期限、スコープ、削除日時 検索条件 操作対象の項目名 操作 アクセス
  18. ◼ ⚫ ✓ +

  19. ◼ ⚫ ⚫ ✓

  20. ◼ ⚫ ⚫ ◼ テーブル名:XXXXXX Primary Key Attributes Partition key

    Sort key px_UUID 会社コード "comp_{XXX}" 事業内容コード business_cd 名称 name 電話番号 tel 残高 balance 登録日時 created_at トークン登録日時 "token_{会社コード}_{SEQ値}" トークン token 削除日時(TTL) deletion_datetime メタデータ "metadata" メンテナンスフラグ flag sx_UUID 固定値 "1"
  21. None
  22. ◼ ◼ ◼ テーブル名:XXXXXX Primary Key Attributes Partition key Sort

    key px_UUID 会社コード "comp_{XXX}" 事業内容コード business_cd 名称 name 電話番号 tel 残高 balance 登録日時 created_at トークン登録日時 "token_{会社コード}_{SEQ値}" トークン token 削除日時(TTL) deletion_datetime メタデータ "metadata" メンテナンスフラグ flag sx_UUID 固定値 "1"
  23. ◼ ◼ ⚫ ◼ ⚫

  24. None
  25. ◼ ◼ ◼

  26. ◼ ◼ ◼ ⚫ ⚫ ⚫ ⚫

  27. ⚫ ⚫

  28. ◼ ⚫ ⚫ ⚫

  29. ◼ ⚫ ⚫ ◼ ⚫ ⚫ ⚫ ⚫ ⚫ ◼

    ⚫ ◼ ⚫ ⚫
  30. ◼ ◼ ◼ ⚫ ⚫ ⚫

  31. ◼ ◼

  32. ◼ ◼

  33. None