SQL Workbench

Workbench は、DynamoDB テーブルをまたいで実際の JOINGROUP BY、集計 クエリ — PartiQLにはできないこと — を実行する SQL オーサリング タブです。これは DynamoDB のアクセスパターンの規則の中の SQL です: 単一の SELECT を書くと、コンパイラがすべての結合が実際のキーまたはインデックスを 通って読み取ることを確認し、結合された行をマテリアライズし、その上であなたの 完全な SQL を実行します。

サイドバーの右クリックメニュー(New Workbench)、⌘⌥B ショートカット、または File → New Workbench から開きます。SQL を書いて、 ⌘↩ を押して実行します。

SELECT c.email, COUNT(*) AS orders, SUM(o.total) AS revenue
FROM orders o
JOIN customers c ON o.customerId = c.id
GROUP BY c.email
ORDER BY revenue DESC
Workbench: 複数テーブルの SQL JOIN と、その下に表示された結合結果グリッド。
Workbench: 複数テーブルの SQL JOIN と、その下に表示された結合結果グリッド。

サポートする内容

次を含む単一の SELECT ステートメント:

  • JOIN ... ON ... — テーブルをまたぐ INNER および LEFT 結合。
  • 集計COUNTSUMAVGMINMAX、加えて GROUP BYHAVING
  • WHEREDISTINCTCASECASTORDER BY

集計クエリがまだストリーミング中の間、partial バッジが該当する列に印を 付けます — より多くのページが届くにつれて数値が精緻化されます。

アクセスパターンの規則

DynamoDB にはサーバーサイドの結合がありません。Workbench コンパイラは、 DynamoDB ができることを強制します: 各 JOIN の to 側の属性は、ターゲット テーブルのパーティションキーまたは GSI パーティションキーでなければならず、 すべての検索が実際のクエリになり、行ごとの隠れたテーブル全体スキャンには なりません。

結合がキーでない属性を指している場合、エディタはそれに下線を引いて理由を 説明します。コンパイラが、正確な波線とともに事前に拒否する他の構文:

  • RIGHT / FULL OUTER / CROSS 結合とカンマ結合(INNER / LEFT のみ)。
  • サブクエリ、CTE(WITH)、UNION / INTERSECT / EXCEPT
  • ウィンドウ関数(OVER)、複数のステートメント、SELECT 以外のすべて。

読み取り専用

Workbench は常に読み取り専用です。編集、ステージング、 一括削除はありません — 分析用の画面です。クエリの実行がテーブルに書き込むことは 決してありません。

識別子は標準 SQL の大文字小文字の扱いに従います: クォートされていない名前は 大文字小文字を区別せずに一致します(WHERE PLATFORMplatform を見つけます)。 大文字小文字を正確に一致させるには、名前をクォートまたはバッククォートで囲みます。

実行、テンプレート、履歴

  • Run — エディタで ⌘↩、Run ボタン、または再実行には ⌘R。 Workbench タブは開いたときに自動実行することはありません。実行は常に意図的です。
  • Run to end⌘⇧↩、または Run ボタンのスプリットメニューから 選びます。1 ページではなく、結合された結果全体をストリーミングします。ページ 上限が解除され、クエリが尽きるまでページが届き続けます。Stop だけが唯一の ブレーキです。1 回のパスで完了させたい大きな集計に便利です。
  • テンプレートと保存済みクエリQueries メニューには、スターター テンプレート(全選択、キーでフィルター、グループで集計、Tab で移動できる箇所 付き)に加え、Save で保存したクエリ — 任意のテーブルで再利用できる、自分で 名前を付けたクエリ — が並びます。選ぶとエディタの内容が置き換わるので、保存した ままの状態で実行されます。
  • History — すべての実行が保存され(PartiQLの履歴とは別に)、 検索でき、復元できます — 失敗した実行も含まれるので、修正して再試行できます。

Workbench タブは保存された仕様です — 名前を付け、⌘K から再度開けば、 再読み込みを経ても残ります。結合された結果をエクスポートする こともできます。

Workbench と Smart Table

どちらも同じ結合エンジンを実行します。同じものをオーサリングする 2 つの方法です:

  • WorkbenchSQL の経路 — クエリを入力し、集計と解決された属性を 得ます。
  • **Smart Table は ビジュアルの経路** — キャンバスに 結合を描画し、結合された行を通常のテーブルのように閲覧します。

更新日