

# NoSQL Workbench を使用したデータモデルの構築
<a name="workbench.Modeler"></a>

Amazon DynamoDB 用 NoSQL Workbench のデータモデラーツールを使用して、新しいデータモデルを構築したり、アプリケーションのデータアクセスパターンを満たす既存のデータモデルに基づいてモデルを設計したりできます。データモデラーには、使用開始に役立つサンプルデータモデルがいくつか含まれています。

**Topics**
+ [新しいデータモデルの作成](workbench.Modeler.CreateNew.md)
+ [既存のデータモデルのインポート](workbench.Modeler.ImportExisting.md)
+ [既存のデータモデルの編集](workbench.Modeler.Edit.md)
+ [データモデルへのサンプルデータの追加](workbench.Modeler.AddData.md)
+ [アクセスパターンの追加と検証](workbench.Modeler.AccessPatterns.md)
+ [CSV ファイルからサンプルデータのインポート](workbench.Modeler.ImportCSV.md)
+ [ファセット](workbench.Modeler.Facets.md)
+ [集計ビューを使用したデータモデル内のすべてのテーブルの表示](workbench.Modeler.AggregateView.md)
+ [データモデルのエクスポート](workbench.Modeler.ExportModel.md)
+ [DynamoDB へのデータモデルのコミット](workbench.Modeler.Commit.md)

# 新しいデータモデルの作成
<a name="workbench.Modeler.CreateNew"></a>

以下のステップに従って、NoSQL Workbench を使用して Amazon DynamoDB に新しいデータモデルを作成します。

**新しいデータモデルを作成するには**

1.  NoSQL Workbench を開き、メイン画面で **[モデルを手動で作成する]** を選択します。

    最初のテーブルの空の設定を含む新しいページが開きます。NoSQL Workbench は、すべての新しいデータモデルをデフォルト名 (untitled-2) で作成し、**[ドラフト]** プロジェクトフォルダに追加します。

1.  **[テーブル設定画面]** で、次のように指定します。
   +  [**Table name (テーブル名)**] — テーブルの一意な名前を入力します。
   +  **[パーティションキー]** – パーティションキー名を入力し、そのタイプを指定します。オプションで、サンプルデータを生成するためのより詳細なデータ型形式を選択することもできます。
   +  **[ソートキー]** を追加する場合は、ソートキー名とそのタイプを指定します。オプションで、サンプルデータを生成するためのより詳細なデータ型形式を選択することができます。
**注記**  
 プライマリキーの設計、パーティションキーの効果的な設計と使用、およびソートキーの使用の詳細については、以下を参照してください。  
 [プライマリキー](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey) 
 [DynamoDB でパーティションキーを効率的に設計し、使用するためのベストプラクティス。](bp-partition-key-design.md) 
 [ソートキーを使用してデータを DynamoDB で整理するためのベストプラクティス](bp-sort-keys.md) 

1. 他の属性を追加して、モデルとアクセスパターンをより明確に検証できます。その他の属性を追加するには。
   +  **[属性の追加]** を選択します。
   +  属性名とタイプを指定します。
   +  オプションで、サンプルデータを生成するためのより詳細なデータ型形式を選択することができます。

1.  グローバルセカンダリインデックスを追加する場合は、[**Add global secondary index (グローバルセカンダリインデックスの追加)**] を選択します。[**Global secondary index name (グローバルセカンダリインデックス名)**]、[**Partition key (パーティションキー)**] 属性、および [**Projection type (プロジェクションタイプ)**] を指定します。

   DynamoDB でグローバルセカンダリインデックスを使用する詳細方法については、「[グローバルセカンダリインデックス](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html)」を参照してください。

1.  オプションで、**[ファセットを追加する]**。ファセットは NoSQL Workbench の仮想コンストラクトです。これは DynamoDB の機能的コンストラクトではありません。NoSQL Workbench のファセットは、テーブル内のデータのサブセットのみを使用して、DynamoDB に対するアプリケーションのさまざまなデータアクセスパターンを視覚化するのに役立ちます。
**注記**  
 アプリケーションが DynamoDB のデータにアクセスする方法を視覚化するには、ファセットではなく、[アクセスパターンの追加と検証](workbench.Modeler.AccessPatterns.md) を使用することをお勧めします。アクセスパターンは実際のデータベースインタラクションを反映し、ユースケースに適したデータモデルを構築するのに役立ちますが、ファセットは非機能的な視覚化です。

    [**Add facet (ファセットの追加)**] を選択します。次を指定します: 
   +  **Facet name (ファセット名)**。
   +  このファセットビューを区別するのに役立つ**パーティションキーエイリアス**。
   +  テーブルに **[ソートキー]** を指定した場合の **[ソートキーエイリアス]**。
   +  このファセットの一部である **[属性]** を選択します。

    さらにファセットを追加する場合は、このステップを繰り返します。

1.  最後に、**[保存]** ボタンをクリックしてテーブルを作成します。

1.  他の **[テーブル]** または **[グローバルセカンダリインデックス]** が必要な場合は、先ほど作成したテーブルの上にある **[\$1]** アイコンをクリックします。

# 既存のデータモデルのインポート
<a name="workbench.Modeler.ImportExisting"></a>

Amazon DynamoDB 用 NoSQL Workbench を使用して、既存のモデルをインポートおよび変更することでデータモデルを構築できます。データモデルは、NoSQL Workbench モデル形式または [AWS CloudFormation JSON テンプレート形式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)のいずれかでインポートできます。

**データモデルをインポートするには**

1.  NoSQL Workbench を開き、メイン画面で **[モデルのインポート]** を選択します。NoSQL Workbench モデル形式または CloudFormation JSON テンプレートのいずれかをインポートできます。

1.  インポートしたモデルを既存のプロジェクトに追加したり、新しいプロジェクトを作成したりできます。別のプロジェクトを選択しない場合、モデルはドラフトプロジェクトフォルダに追加されます。

1.  **[デスクトップを参照]** をクリックし、コンピュータからインポートするモデルを選択します。

# 既存のデータモデルの編集
<a name="workbench.Modeler.Edit"></a>

**既存のモデルを編集するには**

1. 既存のモデルの変更を開始するには、モデラーページでモデルを開きます。

1. リソースセレクターパネルには、**[テーブル]** と **[グローバルセカンダリインデックス]** のリストが表示されます。

1. **[テーブル]** または **[グローバルセカンダリインデックス]** を編集するには、まずリソースセレクターパネルでその名前をクリックし、上部のアクションアイコンを使用します。使用可能なアクションは、**[削除]**、**[複製]**、**[編集]** です。

1. **[モデルの詳細]** を編集する場合は、モデル名の横にある 3 つのドットアイコンをクリックします。

1. そこから、**[モデルの詳細を編集]** をクリックし、それに応じて情報を編集できます。

1. 同じメニューからモデルを **[複製]**、**[移動]**、**[削除]**、**[エクスポート]** することもできます。

1. 別のモデルに変更するには、メイン画面を再度開くか、モデル選択ドロップダウンを使用します。

# データモデルへのサンプルデータの追加
<a name="workbench.Modeler.AddData"></a>

**サンプルデータを自動生成するには**

1. NoSQL Workbench を開き、メイン画面で、サンプルデータを追加するモデルの名前をクリックします。

1. メインコンテンツツールバーの追加アクション (3 つのドットアイコン) をクリックし、**[サンプルデータの追加]** を選択します。

1. 生成するサンプルデータの項目数を入力し、**[確認]** を選択します。

1. サンプルデータを自動生成すると、1～5,000 行のデータを生成して、それをすぐに使用できます。きめ細かいサンプルデータ型を指定して、設計やテストのニーズに基づいた現実的なデータを作成できます。現実的なデータを生成する機能を利用するには、データモデラーで属性のサンプルデータ型フォーマットを指定する必要があります。サンプルデータ型フォーマットの指定については、「[新しいデータモデルの作成](workbench.Modeler.CreateNew.md)」を参照してください。

**サンプルデータを 1 項目ずつ追加するには**

1. 編集するモデルを開き、サンプルデータを追加するテーブルを選択します。メインコンテンツツールバーの追加のアクション (3 つのドットアイコン) をクリックし、**[データを編集]** を選択します。

1. 行を追加、削除、編集できるようになりました。必要な変更を行ったら、**[保存]** ボタンをクリックします。

# アクセスパターンの追加と検証
<a name="workbench.Modeler.AccessPatterns"></a>

Amazon DynamoDB 用の NoSQL Workbench を使用して、*アクセスパターン*を作成、保存、検証できます。

**注記**  
 適切なアクセスパターンを識別する方法の詳細については、「[データアクセスパターンの特定](https://docs.aws.amazon.com/prescriptive-guidance/latest/dynamodb-data-modeling/step3.html)」を参照してください。

**アクセスパターンを作成するには**

1.  NoSQL Workbench を開き、メイン画面で、アクセスパターンを追加するモデルの名前をクリックします。

1.  左側で、**[アクセスパターン]** タブを選択し、**[\$1]** アイコンをクリックします。

1.  次の画面で、**[名前]**、オプションの **[説明]**、アクセスパターンの **[タイプ]**、アクセスパターンをテストする **[テーブル]** または **[グローバルセカンダリインデックス]** を指定します。
**注記**  
 NoSQL Workbench は現在、アクセスパターンに対して次のオペレーションをサポートしています。`Scan`、`Query`、`GetItem`、`PutItem`、`UpdateItem`、`DeleteItem`。Amazon DynamoDB は、より広範なオペレーションをサポートしています。

1.  アクセスパターンを作成したら、**[検証]** タブに切り替えて、データモデルがアクセスパターンに対して期待される結果を返すように設計されているかどうかを確認できます。テーブルのサンプルデータを自動生成する方法の詳細については、「[データモデルへのサンプルデータの追加](workbench.Modeler.AddData.md)」を参照してください。アクセスパターンのタイプによって、サポートされる入力パラメータも異なります。
**注記**  
アクセスパターンを検証するために、NoSQL Workbench は、テーブルとインデックスがメモリに保存されたポート `8001` (デフォルト) で別の DynamoDB local データベースを起動します。  
NoSQL Workbench は、モデルからのサンプルデータを一時テーブルに自動的に追加します。
サンプルデータまたはデータモデル自体を編集すると、NoSQL Workbench は一時テーブルを更新します。
この一時データベースは、アプリケーションを閉じると消去されます。

**アクセスパターンを編集するには**

1.  NoSQL Workbench を開き、メイン画面で、アクセスパターンを編集するモデルの名前をクリックします。

1.  左側で、**[アクセスパターン]** タブを選択します。

1. アクセスパターンを編集するには、左側のリストから選択します。

1. 上部のバーで、**[編集]** アクションボタンをクリックします。

# CSV ファイルからサンプルデータのインポート
<a name="workbench.Modeler.ImportCSV"></a>

CSV ファイル内に既存のサンプルデータがある場合は、それを NoSQL Workbench にインポートすることができます。これにより、行単位で入力することなく、サンプルデータをモデルにすばやく入力できるようになります。

CSV ファイルの列名は、データモデルの属性名と一致する必要がありますが、同じ順序である必要はありません。例えば、データモデルに `LoginAlias`、`FirstName`、`LastName` と呼ばれる属性がある場合の場合、CSV 列は `LastName`、`FirstName`、`LoginAlias` になる可能性があります。

CSV ファイルから一度に最大 150 行をインポートできます。

**CSV ファイルから NoSQL Workbench にデータをインポートするには**

1. CSV データを **[テーブル]** にインポートするには、まずリソースパネルでテーブル名をクリックし、次にメインコンテンツツールバーで追加のアクション (3 つのドットアイコン) をクリックします。

1. **[サンプルデータのインポート]** を選択します。

1. CSV ファイルを選択して **[Open]** (開く) を選択します。CSV データがテーブルに追加されます。

# ファセット
<a name="workbench.Modeler.Facets"></a>

 NoSQL Workbench では、*ファセット*を使用すると、ファセットの制約を満たさないレコードを表示することなく、テーブル内のデータのサブセットを表示できます。ファセットはビジュアルデータモデリングツールと見なされ、アクセスパターンのモデリングを純粋に補助するものであるため、DynamoDB で使用できる構造としては存在しません。

**注記**  
 アプリケーションが DynamoDB のデータにアクセスする方法を視覚化するには、ファセットではなく、[アクセスパターンの追加と検証](workbench.Modeler.AccessPatterns.md) を使用することをお勧めします。アクセスパターンは実際のデータベースインタラクションを反映し、ユースケースに適したデータモデルを構築するのに役立ちますが、ファセットは非機能的な視覚化です。

**ファセットを作成するには**

1. リソースセレクターパネルで、編集する **[テーブル]** を選択します。

1. 上部のバーで、**[編集]** アクションアイコンをクリックします。

1. **[ファセットフィルター]** セクションまで下にスクロールします。

1.  [**Add facet (ファセットの追加)**] を選択します。次を指定します: 
   +  **Facet name (ファセット名)**。
   +  このファセットビューを区別するのに役立つ**パーティションキーエイリアス**。
   +  テーブルに **[ソートキー]** を指定した場合の **[ソートキーエイリアス]**。
   +  このファセットの一部である **[属性]** を選択します。

    さらにファセットを追加する場合は、このステップを繰り返します。

# 集計ビューを使用したデータモデル内のすべてのテーブルの表示
<a name="workbench.Modeler.AggregateView"></a>

Amazon DynamoDB 用の NoSQL Workbench の集計ビューを使用して、データモデル内の全てのテーブルとインデックスを視覚化できます。各テーブルについて、以下の情報が表示されます。
+ テーブルの列名
+ サンプルデータ
+ テーブルに関連付けられているすべてのグローバルセカンダリインデックス。NoSQL Workbench は、インデックスごとに次の情報を表示します。
  + インデックス列名
  + サンプルデータ

**すべてのテーブル情報を表示するには**

1. NoSQL Workbench を開き、メイン画面で、開くモデルの名前をクリックします。

1. 上部のバーで、**[集計ビュー]** をクリックします。すべてのテーブルとインデックスのデータが同じ画面に表示されます。

**集約ビューをイメージとしてエクスポートするには**

1. **[集計ビュー]** を選択し、3 つのドットアイコンをクリックし、**[集計ビューのエクスポート]** を選択します。

1. すべてのテーブルとインデックスの PNG イメージを含むアーカイブがダウンロード用に表示されます。

# データモデルのエクスポート
<a name="workbench.Modeler.ExportModel"></a>

Amazon DynamoDB 用 NoSQL Workbench を使用してデータモデルを作成した後、モデルを NoSQL Workbench モデル形式または [AWS CloudFormation JSON テンプレート形式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)で保存およびエクスポートできます。

**データモデルをエクスポートするには**

1. NoSQL Workbench を開き、メイン画面で編集するモデルの名前をクリックします。

1. データモデル名の横にある 3 つのドットアイコンをクリックして、**[モデルをエクスポート]** を選択します。

1.  データモデルを NoSQL Workbench モデル形式または CloudFormation JSON テンプレート形式でエクスポートするかどうかを選択します。
   +  NoSQL Workbench を使用してモデルを他のチームメンバーと共有したり、後で NoSQL Workbench にインポートしたりする場合は、**NoSQL Workbench モデル**形式を選択します。
   +  モデルを AWS に直接デプロイしたり、コードとしてのインフラストラクチャワークフローに統合する場合は、**CloudFormation JSON テンプレート**形式を選択します。

# DynamoDB へのデータモデルのコミット
<a name="workbench.Modeler.Commit"></a>

 データモデルに満足したら、モデルを Amazon DynamoDB にコミットできます。

**注記**  
このアクションにより、データモデルで表されるテーブルとグローバルセカンダリインデックス用のサーバー側リソースが AWS に作成されます。
NoSQL Workbench は、デフォルトでオンデマンド容量を持つテーブルとインデックスを作成します。

**データモデルを DynamoDB にコミットするには**

1. NoSQL Workbench を開き、メイン画面で、コミットするモデルの名前をクリックします。

1. 上部のバーで、**[コミット]** をクリックします。

1. 既存の接続を選択するか、**[新しい接続を追加]** ボタンをクリックして新しい接続を作成します。
   + 新しい接続を追加するには、以下の情報を指定します。
     + **アカウントエイリアス**
     + **AWS リージョン**
     + **アクセスキー ID**
     + **シークレットアクセスキー**

     アクセスキーを取得する方法の詳細については、「[AWS アクセスキーの取得](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.GetCredentials)」を参照してください。
   + オプションで次の値を指定できます。
     + [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)
     + [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)

1. [DynamoDB local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) を使用する場合。

   1. **[ローカル接続]** タブを選択します。

   1. **[新しい接続を追加]** ボタンをクリックします。

   1. [**Connection name (接続名)]** と [**Port (ポート)**] を指定します。
**注記**  
 DynamoDB local を使用するには、NoSQL Workbench 画面の左下にある **[DynamoDB local]** トグルを使用して有効にする必要があります。

1. **[コミット]** をクリックします。