フィルタとクエリパターン
すべてのテーブルタブは フィルタ を持ちます。これは DynoTable が
DynamoDB リクエストに変換する述語の状態です。各要素が query と scan の
どちらにマッピングされるかを理解することが、アプリを高速に保ち、請求額を
小さく抑えるための大半を占めます。
このページでは ビジュアル タブモードを扱います。SQL スタイルのクエリを 直接書くには PartiQL に切り替えてください。結合や集計には Workbench を開きます。
フィルタ行
ビジュアルモードでは、ピルが横一列に並んだ1つの行が表示されます:
[Index] [hashKey = value] [rangeKey op value] [+ filter] | [Clear] [Query/Scan]- インデックスピル — 経由して読み取るクエリパターン。
- キーピル — そのパターンのパーティション(ハッシュ)キーと、存在する場合は ソート(レンジ)キー。
- フィルタピル — キー以外の追加条件(スキャンフィルタ)。
- アクションボタンは、設定した内容に応じて Query または Scan と表示され、 結果のストリーミングが始まると Load more に変わります。
値を設定すると DynoTable は自動的に実行します。ピルをクリアまたは編集すると、 フィルタが再び有効になり次第、再実行されます。

クエリパターン
クエリパターン とは、経由して読み取るインデックスのことです:
PRIMARY— テーブル自身の / 。- 名前付きの または — それ自身のキースキーマ。
選択したパターンによって、どのキーでフィルタできるかが決まります。インデックスピル からパターンを切り替えると、キーピルがそのパターンのパーティションキーとソートキーに 更新されます。
Query と Scan
これがコストと速度を左右する重要な違いです:
- フィルタ を設定すると、DynoTable は ターゲットを絞った を発行します — 一致するパーティションだけを 読み取ります。安価で高速です。
- 設定しない場合は にフォールバックし、テーブル(またはインデックス) 全体をページ単位で読み取ります。これを明示するため、アクションボタンは Scan と表示されます。
キーフィルタ
パーティションキーピルは値を受け取ります。値を設定した瞬間に、アクションは Query になります。ソートキーピルはその上に比較を追加します:
=、<、<=、>、>=— 順序つきの比較(数値、および文字列に対する辞書順)。begins_with— 文字列またはバイナリに対する前方一致。between— 両端を含む範囲。ピルに2つ目の値フィールドが追加されます。
文字列型のキーは 自動補完 を提供します。DynoTable がバックグラウンドで テーブルをインデックスするにつれ、すでに見つかった実際の値を提案します。 有用な候補がないキー(ランダムな UUID など)は、通常の入力欄にフォールバックします。
スキャンフィルタ
+ filter ピルは、キー以外の条件 — キーだけでなく任意の属性 — を追加します。 各フィルタは、列、演算子、値で構成されます:
- 比較:
=、≠、<、<=、>、>=、between。 - 所属:
in— リスト内のいずれかの値に一致(文字列または数値)。 - 文字列 / バイナリ:
begins_with、contains。 - 存在:
exists、not exists。 - 型:
type equals/type not equals(DynamoDB の型コードS、N、BOOL、… に対して)と、コレクション型向けのsizeファミリー。
提供される演算子は属性の型に応じて変わります — 数値には順序つきの比較、文字列には
begins_with が表示されます。スキャンフィルタは、Query または Scan がアイテムを
読み取った 後 に適用されるため、結果を絞り込みますが Scan が安くなるわけでは
ありません。読み取りを減らすにはキーフィルタを使い、返ってくるものを絞り込むには
スキャンフィルタを使います。
シングルテーブル設計: 複合キー
シングルテーブル設計は、複数のエンティティ型をキープレフィックスの背後で1つの
テーブルに詰め込みます — USER#123、ORDER#456、TENANT#acme。DynoTable は
これらを自動的に認識し、設定は不要です:
- キーがその場でデコードされます。 複合値 — 大文字のプレフィックスが
#、|、 または~で残りの部分と結合されたもの — は、すべてのグリッド(テーブル、PartiQL の結果、Workbench)でラベル付きの各部分として表示されます。これらの文字の1つを 単に含むだけの通常の値(#FF5733のような16進数の色や、パイプ区切りのリスト)は、 そのまま変更されずに残ります。 - ワンクリックでエンティティに絞り込みます。 行を右クリックして Filter to
USER#を選びます — プレフィックスはその行のキーから直接読み取られます。 DynoTable は通常のフィルタピルとして、キーに対する実際のbegins_withを適用し、 これは通常の方法(その ✕、または Clear)でクリアできます。行の パーティションキー と ソートキーの両方にプレフィックスがある場合は、 それぞれに1つずつ選択肢が表示されます。
ダイアログも、設定も、保存されるものもありません — 目の前にあるキーから ライブで導出されます。

ソートとページング
ソートキーピルは ソート順 の切り替え(昇順 / 降順)を持ち、これは DynamoDB の
ScanIndexForward にマッピングされます。結果は一度に1ページずつストリーミングされます —
Load more が次のページを取得し、ページサイズを変更すると
最初のページから再読み込みします。
Run to end
デフォルトでは、Query や Scan は 数ページで一時停止 し、大きなテーブルが 一度にすべて読み込まれないようにします — アクションボタンは Load more を表示して 次のページを取得します。一度の処理で すべて を取得したい場合は、実行モードを 切り替えます:
- アクションボタンの隣の シェブロン をクリックして Run to end を選びます。 プライマリボタンは Scan all / Query all / Run all に表示が変わります — ページ予算で一時停止しているときも含め、それをクリックすると最後まで読み取ります。
- その表示の変わったボタンをクリックすると、DynoTable はテーブル(またはインデックス) 全体が読み取られるまでページの取得を続けます。この選択はセッション中、タブごと に 記憶されます。Paged を選ぶと元に戻ります。モードを選んでも、それ自体が 実行を開始することはありません — ボタンの表示を変えるだけなので、いつ発火させるかは あなたが決めます。
大きなテーブル では、Run to end を準備すると、まずテーブルのおおよそのサイズと アイテム数を示す 確認プロンプト が表示されます。これにより、フルスキャンは事故では なく、常に意図的な選択になります。続行するには確認し、ページモードのままにするには キャンセルします。

キーボードから:
- ⌘↩ は現在のクエリを実行します — 結果がページ予算で一時停止しているときは、 最初からやり直すのではなく 次のページに進みます。
- ⌘⇧↩ は常に一度の処理で 最後まで実行 します。
- ⌘. または Esc は、実行中の処理をいつでも 停止 します。








