AWS-DynamoDB


[9-1]DYNAMODBは?


DynamodBとは?
  • Not Only SQLデータベース:
  • リレーショナル・データベースのほか、他の形式のデータベースもあります.
  • クイッククエリー
  • 自動スケーリング機能:データが大きい時間表を超えると大きくなる->コストメリット
  • KeyValueデータモデルのサポート:
  • の重要な価値
  • テーブルの作成時にモード
  • を作成する必要はありません.
  • モバイル、Web、地球データの使用を推奨:
  • リアルタイムデータの使用に適しています
  • SSDストレージ:
  • 読み取りと書き込みが非常に高速
  • 表(Table)
    プロジェクト(Items)-行(row)の概念に似ています
    フィーチャー(Attributes)-カラム(column)の概念に似ています.
    Key Value(Key:データの名前、Value:データ自体)
    例)JSON,XML
  • DynamoDB - Primary Keys (PK)
  • PKを使用して
  • データを問合せ
  • DynamodDBには2種類のPKタイプがあります
    1)パーティション鍵:データを分離するための鍵
    :ユニーク機能(Unique Attribute)
    :実際のデータの場所の決定
    :パーティションキーを使用する場合、同じ場所に同じデータを2つ格納することはできません.
    =パーティションキーを繰り返すことはできません
    2)複合鍵
    :パーティションキー+ソートキー
    同じ顧客が異なる日付で異なる商品を購入する
    :::パーティション鍵:顧客ID、ソート鍵:日付(Timestamp)
    ::同じパーティションキーのデータを同じ場所に格納し、ソートキーを押してデータをソート
  • パーティションキー:顧客ID、ソートキー:日付(Timestamp)
    {
    “Customer_id” : “28942”,
    “Transaction_id” : “g9s4dd2”,
    “Item_purchased” : “sofa”,
    “Store_location” : “seoul”,
    “Transaction_date” : “2020-10-16 14:20:00”,
    }
    DynamodBデータアクセスの管理
  • AWS IAM管理
  • テーブル作成およびアクセス
  • 特定のテーブルのみ、特定のデータ
  • にアクセス可能な特殊なIAMロールを有する

    [9-2] Index


    Index:Queryのパフォーマンス向上
  • 特定のカラムクエリ
  • のみを使用
  • クエリは、テーブル
  • 全体ではなく基準点(pivot)を使用する.
  • クエリーのパフォーマンスに大きな影響
  • 2つのインデックス・タイプがあります:

  • 1) Local Secondary Index(LSI)
    :テーブルの作成時にのみ定義できます.
    :したがって、テーブルを作成した後に変更する必要があります.削除できません.->テーブルを削除する場合は、テーブルを削除する必要があります.
    :同じパーティションキーを使用しますが、異なるソートキーを使用します.
    2) Global Secondary Index(GSI)
    :テーブルの作成後に追加、変更、または削除できます.
    :他のパーティションキー、ソートキー->を使用して新しいビューを作成する
  • [9-3] Query vs Scan


    Query
  • プライマリキーを使用してデータ
  • をスキャンする.
  • Queryは、すべてのデータ(列)
  • を返す
  • ProjectionExpressionパラメータ->必要なカラムのみを表示します.
  • Scan
  • すべてのデータをロード(プライマリ・キーXを使用)
  • ProjectionExpressionパラメータ
  • Query VS Scan
  • QueryはScanより効率的->Query
    ->データサイズが異なるため、スキャンのパフォーマンスは徐々に低下します
    ->look-up(重複しないようにデータを定義して保存)ではScanを使用できます.
  • [9-4]DynamodB実習-1



    [9-5]DynamodB実習-2



    dynamODBの作成方法
    1.プロジェクトの作成
    2.lambba関数による作成
    <フィルタ機能>スキャンとクエリー
    スキャン
    クエリ

    [9-6] DAX(DynamoDB Accelerator)


    DAXとは?
  • クラスタメモリキャッシュ:
  • 必要なデータを後で検索するときにすばやく検索
    速度が
  • の10倍以上になる
  • のみの読み取り要求(書き込み要求X)->読み取り要求が非常に多いか大きい場合、
  • は非常に便利です
  • Exブラックフライデーショッピングサイト運営(大量の読書リクエストが予想される)
  • DAXの原理
  • DAXキャッシュシステム
    データをテーブルに挿入して更新すると、DAXにも反映されます.一度に2つのことが発生します.
    DAXが
  • のリード要求に適合するデータを含む場合、DAXは直ちにデータ(キャッシュ)<->
  • を返す(キャッシュがヒットしていない)
    DAXの欠点
  • は、書き込み要求の多いアプリケーションには適用されません.
    ->書き込み要求を除く
  • 読み取り要求の少ないアプリケーション
    ->読み取り要求が少ない場合、役に立たない/費用面のべき乗もよくない
  • はすべての地域で提供されていません(ソウルでは提供されていません)

  • クラスタを作成して設定する必要があります

    [9-7] DynamoDB Streams


    DynamoDB Stream?
  • DYNAMODBテーブルで発生する事象(挿入、修正、削除等)を時間順にStreamsに
  • を記録する.
  • ログはすぐに暗号化され、24時間保持->24時間後に
  • が削除されます.
  • は、イベントを記録し、外部(例えばLambda Function)
  • にイベントを公開するために使用される.
  • イベント前後の状況アーカイブ
  • 2つのSDKに関連付けられたアプリケーション
    (1つのAPIが1つのEndpointに接続されている)

    dynamODBストリームを使用すると、dynamODBテーブルでイベントが発生したときに効率的なアーキテクチャを作成できます.

    私は単独でDBを勉強していて、awsの角度からDBを勉強することができますので、とても有益です.