PartiQL
PartiQL は DynamoDB の SQL 互換クエリ言語です。任意のテーブルタブを
PartiQL モード(⌘⇧M)に切り替えると、フィルター
ピルをクリックする代わりに、SELECT、INSERT、UPDATE、
DELETE ステートメントを直接記述できます。
タブを PartiQL モードに切り替えると、既定の SELECT * FROM "table" スキャンが
自動実行されます — テーブルをビジュアルビューで開くのと
直接同じ動作です。ステートメントを編集したあとは、実行するかどうかはあなた次第
です: ⌘↩ を押して実行します。結果がストリーミングで表示され、
Load more で次のページを取得します。
SELECT * FROM "my-table" WHERE pk = 'USER#42' AND begins_with(sk, 'ORDER#')
PartiQL は SQL ではない
DynamoDB の PartiQL は意図的なサブセットです。エディタは入力中にクエリを リントし、DynamoDB が実行しない構文をフラグします — たいていワンクリックの クイックフィックス付きです。よくある落とし穴:
INは丸括弧ではなく角括弧を使う —('a', 'b')ではなくWHERE id IN ['a', 'b']。クイックフィックスが書き換えます。リストが DynamoDB の上限(パーティションキー列では 50 値、非キー列では 100 値)を超えた場合も、 サーバーが拒否する前にリンターが警告します。LIMIT句なし — ページサイズは SQL ではなくタブのコントロールです。 Load more を使ってください。JOIN、GROUP BY、HAVING、集計、サブクエリ、UNION、CTE はなし。 それらには Workbench タブを開いてください — リンターが そこへ案内します。LIKE→ 関数 —LIKE '%foo%'はcontains(col, 'foo')に、'foo%'はbegins_with(col, 'foo')になります。クイックフィックスが提供されます。IS NULL/IS NOT NULL→attribute_not_exists(col)/attribute_exists(col)。クイックフィックスが提供されます(対応が逆になる点に 注意)。- 文字列リテラルはシングルクォート —
"value"ではなく'value'。 ダブルクォートは識別子を意味します。
Run ボタンの隣のformat-helpポップオーバーは、リマインダーが必要なときに これらをインラインで一覧します。
テンプレートと保存済みクエリ
Queries メニューは、すぐに使えるステートメントをエディタに挿入します。
アクティブなテーブルの実際のキーとサンプリングされた値に対して解決されるので、
SELECT テンプレートはプレースホルダーではなく、あなたのパーティションキーを
すでに参照した状態で届きます。ハイライトされた箇所を Tab で移動しながら、残りを
埋めてください。
再利用したいステートメントは Save ボタンで保存できます — 保存したクエリは テンプレートと同じメニューに並び、任意のテーブルですぐに実行できます。Workbench と PartiQL は別々のライブラリを保持します。異なるクエリ言語を扱うためです。
書き込みテンプレート
INSERT / UPDATE / DELETE テンプレートは、意図的に合成の DEMO-* キーを
使うので、すぐに実行しても実際の行を誤って変更することはありません。順番に
実行するよう設計されています — 挿入、更新、そして同じデモアイテムの削除 —
キーを編集して実際のデータを対象にします。
履歴
実行したすべてのクエリは、モードごとの履歴に保存されます (Workbenchのものとは別です)。履歴メニューを再度開くと、 以前のステートメントをエディタに復元できます — 失敗した実行も含まれるので、 修正して再試行できます。


