PartiQL と SQL

PartiQL は DynamoDB に SQL ライクな構文を与えます。しかしそれは単一テーブルに対する SELECT/INSERT/UPDATE であり、クエリエンジンではありません。JOIN も GROUP BY も、アイテムをまたぐ SUM もありません。習慣で SQL を書くと、PartiQL は見慣れたステートメントをこっそりフルテーブルの Scan にマップし、その分を課金します。

このセクションでは PartiQL について正直な期待値を設定し、そのうえで DynoTable の SQL Workbench が PartiQL にできないこと — JOIN、GROUP BY、集計 — を、境界の定まった結果セットに対してクライアント側で、DynamoDB のアクセスパターンのルールの中にとどまりながらどう実現するかを示します。

7 件中 0 件読了クイズ
DynamoDB PartiQL vs SQL: 何が壊れるのか
DynamoDB の PartiQL は SQL に似ていますが、JOIN もGROUP BY もサブクエリも集計もありません。すべての文はネイティブの 1 操作に対応します。何が壊れるのかを解説します。
初級読了 8 分
例で学ぶ DynamoDB の PartiQL
例で学ぶ DynamoDB の PartiQL — SQL に似た構文での SELECT、INSERT、UPDATE、DELETE と、パーティションキーやテーブル全体のスキャンにまつわる落とし穴を解説します。
初級読了 2 分
DynamoDB のための SQL と PartiQL の限界
DynamoDB を SQL でクエリできる? PartiQL はキーによる SELECT・INSERT・UPDATE・DELETE を扱いますが、JOIN も GROUP BY も COUNT(*) もありません。何ができるのかを解説します。
初級読了 8 分
DynamoDB の JOIN: テーブルを結合する方法
DynamoDB に JOIN はなく、PartiQL もそれを追加しません。その理由、開発者が使う4つの回避策、そして DynoTable の SQL Workbench が本物の JOIN を実行する仕組み。
中級読了 9 分
DynamoDB GROUP BY:GROUP BY 句なしで集計する方法
DynamoDB と PartiQL には GROUP BY も COUNT も SUM もありません。それを置き換えるパターン — アトミックカウンター、Streams + Lambda のロールアップ、アプリ側でのグルーピング。
中級読了 9 分
DynamoDB で COUNT、SUM、集計を行う方法
DynamoDB で COUNT、SUM、集計を行う方法 — Select=COUNT のコスト、ネイティブの SUM や AVG がない理由、そして本当の合計を得るためのパターン。
初級読了 8 分
理解度チェッククイズに挑戦
このセクションで学んだ内容を確認しましょう。

何が本物かを見極めるために、PartiQL と SQL から始めてください。

DynoTable を試すと、Workbench でテーブルに対して SQL を実行できます。