DynoTable vs DataGrip
DataGrip はリレーショナルデータベースと NoSQL データベースのための JetBrains の IDE で、DynamoDB はそのホームページに名前が挙がる 26 種類のデータベースのうちの 1 つです。バージョン 2023.3 以降は、jdbc:dynamodb:// のデータソースをテーブルに向け、データエディタでアイテムを閲覧・編集し、コードエディタで PartiQL を書けます。
DynoTable は、その仕事のうち DynamoDB の部分を担う DataGrip の代替です。DynamoDB 専用クライアントとして、PartiQL が拒む JOIN、GROUP BY、集計を実行し、それらをあなたのキーと GSI に対してクライアント側でプランニングします。以下の内容は 2026 年 10 月時点のものです。
DataGrip を使い続けるか、DynoTable に乗り換えるか
| あなたのワークフロー | 選ぶもの |
|---|---|
| Postgres、MySQL、DynamoDB を 1 つの JetBrains IDE で SQL 操作したい | DataGrip |
| すでに DataGrip のライセンスがあり、DynamoDB にはたまにしか触らない | DataGrip |
稼働中の DynamoDB テーブルに対する JOIN、GROUP BY、集計 | DynoTable |
| DynamoDB の編集をステージングし、コミット前に属性ごとの差分をレビューしたい | DynoTable |
| 自分の AWS Bedrock キーで動き、書き込みをステージングする AI エージェント | DynoTable |
DataGrip が DynamoDB 接続で提供するもの
2023.3 の JetBrains のリリースノートによれば 3 つです。データビューア、コードエディタでの PartiQL、そして「Tables with keys and indexes are now introspected」。接続はドキュメント化された 3 つの形式を取ります。ローカルインスタンス向けの jdbc:dynamodb://localhost:8000、名前付き AWS プロファイル向けの jdbc:dynamodb://、そしてリージョンを固定する jdbc:dynamodb://?region=eu-west-1 です(DataGrip ドキュメント)。同じヘルプページではこれを「Data editor and viewer」と呼んでいます。JetBrains の課題トラッカーには、ネストしたリストやマップの値の編集と、行の削除に関する未解決のバグがあります(DBE-20629、DBE-21471)。
このイントロスペクションの一文は、DynamoDB が公開するスキーマのすべてをカバーしています。DescribeTable が返すのはキー属性だけです。アイテムが plan、seats、active、tags、meta も持っているテーブルでの結果がこちらです。
"AttributeDefinitions": [
{"AttributeName": "pk", "AttributeType": "S"},
{"AttributeName": "sk", "AttributeType": "S"}
]5 つの属性が欠けているのは、DynamoDB がそれらを記録したことがないからです。それ以外にクライアントがあなたのテーブルについて知っていることは、アイテムを読んで推測した結果です。
SQL の習慣が止まるところ
DataGrip のような IDE にお金を払う理由は、それが自分の SQL を理解してくれることです。DynamoDB に対しては PartiQL の文法をそのまま渡すことしかできず、その文法は小さいのです。以下の各文は ExecuteStatement を通じて DynamoDB Local 3.3 に送られました。レスポンスはそのままの逐語です。
| 文 | レスポンス |
|---|---|
SELECT * FROM orders o JOIN customers c ON o.customerId = c.customerId | ValidationException: Only select from a single table or index is supported. |
SELECT status, SUM(amount) FROM orders GROUP BY status | ValidationException: Unsupported clause: GROUP BY |
SELECT COUNT(*) FROM orders | ValidationException: Unexpected path component at 1:8:5 |
SELECT DISTINCT status FROM orders | ValidationException: Unsupported token in expression: DISTINCT |
SELECT * FROM orders ORDER BY amount DESC | ValidationException: Must have WHERE clause in the statement when using ORDER BY clause. |
SELECT * FROM orders WHERE orderId = '1' ORDER BY amount DESC | ValidationException: Variable reference amount in ORDER BY clause must be part of the primary key |
DynamoDB は、結果セットをキー以外の属性で並べ替えることができません。AWS が公開している SELECT の文法が許すのは、1 つの FROM のテーブルかインデックス、任意の WHERE、そしてハッシュキーかソートキーに限定された ORDER BY だけです(PartiQL SELECT リファレンス)。DataGrip はあなたの文を、その文法を迂回してコンパイルするのではなく、そのまま文法に渡します。
そのギャップを自分で埋めるということは、結合もグループ化も並べ替えもアプリケーションコードに書くということです。DynoTable の SQL Workbench はそれらを代わりにコンパイルし、テーブルのキースキーマに対してプランニングされたネイティブの Query と Scan の呼び出しにまで落とします。
結合するには、結合先のテーブルが結合属性でキー付けされている必要があります。ソートキーを持たないテーブルのパーティションキーか、ちょうど 1 つの GSI のパーティションキーです。それ以外の結合は、結合先のテーブルを黙ってスキャンするのではなく、Workbench が拒否します。
コストのモデルは DynamoDB のままです。2 行目のようにパーティションキーの等価条件を持たない GROUP BY は、やはり全アイテム分が課金される完全な Scan になります。また集計の列は、すべてのページを読み終えるまで (partial) と表示されます。何を出力するかは DynamoDB のための SQL が扱います。

AI エージェントとベクトル検索
DataGrip 2026.1 は、MCP サーバー経由でデータベースにアクセスする AI エージェント(Claude Agent、Codex)を追加しました。データを読んだり変更したりする前には同意を求めるプロンプトが出ます(What's New in DataGrip 2026.1)。DynoTable のエージェントはあなた自身の AWS アカウントの Amazon Bedrock 上で動き、DynamoDB への書き込みはステージングしかできないので、レビューはあなたが行います(AI チャットのドキュメント)。

AWS は「Vector indexes are not accessible through PartiQL」(ベクトルインデックスには PartiQL からアクセスできない)と明言しており(ベクトル検索の要件)、DataGrip の DynamoDB ドキュメントにはそれ以外のベクトル機能の記載もありません。DynoTable はインデックスを作成し(有料、オンデマンドのテーブルのみ、DynamoDB Local では不可)、貼り付けたベクトル、Find similar、またはあなたのアカウントで Bedrock のトークンを消費する打ち込んだ文章で検索します。詳しくはベクトル検索をご覧ください。
DataGrip から乗り換える方法
- macOS(Apple Silicon)、Windows、Linux 向けに DynoTable をダウンロードしてインストールします。
jdbc:dynamodb://のデータソースごとに、同じ AWS プロファイルで DynoTable のプロファイルを作成し、そのデータソースが使っていたリージョン(?region=の値があればそれ)を選びます。各プロファイルはリージョンを 1 つに固定し、⌘P でプロファイルを切り替えます。jdbc:dynamodb://localhost:8000のデータソースは、ポート 8000 の DynamoDB Local プロファイルになります。テーブルはそのままの場所にあるので、移行するものはありません。- DataGrip のクエリコンソールにある PartiQL を、DynoTable の PartiQL エディタに貼り付けます。同じ DynamoDB の PartiQL なので書いたとおりに動き、
UPDATE、INSERT、DELETEには Commit changes か Stage changes のボタンが付きます。 - SQL Workbench を開き、上の表の文を実行します。JOIN は、
customersがcustomerIdだけでキー付けされているか、それをキーとする GSI が 1 つあればコンパイルされます。そうでなければ、実行前に Workbench が理由を示します。
DataGrip は非商用利用なら無料です。個人が商用で使う場合のライセンスは初年度 $109(2 年目 $87、3 年目以降 $65)、または月払いで $10.90、組織向けシートは年 $259 です。
DynoTable のトライアルは 30 日間無料で、クレジットカードは不要です。有料シートは 年払いで月 $9(年 $108)、月払いなら $12 です。Team の料金は料金を参照してください。トライアル後は Free プランに残ります。Free プランには無料の DynoTable アカウントが必要で、閲覧、PartiQL SELECT、アプリ内エクスポート、読み取り専用の MCP を期限なしで使えます。
よくある質問
DataGrip は DynamoDB に対応していますか?
はい、DataGrip 2023.3 以降なら対応しています。jdbc:dynamodb:// のデータソースを接続し、データエディタでアイテムを閲覧・編集し、DynamoDB がサポートする PartiQL のサブセットを実行できます。JOIN、GROUP BY、DISTINCT、集計関数はそのサブセットの外なので、DynamoDB はそれらに対して ValidationException を返します。
DataGrip から DynamoDB に対して JOIN を実行できますか?
いいえ。2 テーブルの SELECT は ValidationException: Only select from a single table or index is supported. として返ってきます。このエラーを返しているのは DynamoDB 自身なので、どの PartiQL クライアントでも回避できません。DynoTable の SQL Workbench は、あなたのキーと GSI に対して結合をクライアント側でコンパイルします。
DynamoDB のクエリをキー以外の属性で並べ替えられますか?
PartiQL ではできません。普通の属性に対する ORDER BY は ValidationException: Variable reference amount in ORDER BY clause must be part of the primary key を返し、WHERE を完全に省くとその前に失敗します。キー以外での並べ替えは、行が届いた後に、クライアントか自分のコードで行うしかありません。
関連ページ
- ほかのデスクトップクライアント:TablePlus の比較と Dynobase の比較。
- すべてのクライアントを並べて見る:ベストな DynamoDB GUI クライアント、または完全な比較ハブ。
- DynoTable の PartiQL エディタが読み取りと書き込みをどう扱うか:PartiQL のドキュメント。
- 無料の DynamoDB 式ビルダーで、キー条件を手で組み立てる。
最終確認 2026-10-09、JetBrains の DataGrip のドキュメント、料金ページ、What's New ページ、および AWS の PartiQL リファレンスに照らして確認しました。ValidationException のレスポンスは 2026-07-28 に DynamoDB Local 3.3.0 に対して再現し、2026-10-09 に DynamoDB Local 3.3.1 に対して ExecuteStatement 経由で再実行したもので、文字列はそのままの逐語です。DataGrip は JetBrains s.r.o. の商標であり、ここでは識別目的でのみ言及しています。





