DynoTable vs DataGrip
DataGrip はバージョン 2023.3 以降 DynamoDB に接続できます。jdbc:dynamodb:// のデータソースをテーブルに向け、データエディタでアイテムを閲覧し、コードエディタで PartiQL を書く、という流れです。DynamoDB 専用クライアントである DynoTable は、PartiQL が拒む JOIN、GROUP BY、集計を実行し、それらをあなたのキーと GSI に対してクライアント側でプランニングします。このページは 2026 年 7 月時点で、両者を DynamoDB クライアントとして比較します。
DataGrip を使い続けるか、DynoTable に乗り換えるか
| あなたのワークフロー | 選ぶもの |
|---|---|
| Postgres、MySQL、DynamoDB を 1 つの JetBrains IDE で SQL 操作したい | DataGrip |
| 公式の PartiQL 文法でコードエディタから DynamoDB を閲覧したい | DataGrip |
稼働中の DynamoDB テーブルに対する JOIN、GROUP BY、集計 | DynoTable |
| コミット前に差分をレビューできる、ステージングされたアイテム編集 | DynoTable |
| 自分の AWS Bedrock キーで動き、書き込みをステージングする AI エージェント | DynoTable |
DynoTable は DynamoDB 向けの DataGrip 代替になりますか?
仕事のうち DynamoDB の部分については、なります。DataGrip はリレーショナルデータベースと NoSQL データベースのための JetBrains の IDE で、DynamoDB は接続先およそ 20 種類のうちの 1 つです。1 つのデータベースについてだけ正しければよいクライアントには、それに対してもっと多くのことをする余地があります。このページが本当に扱っているのは、そのトレードオフです。
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 ドキュメント)。
このイントロスペクションの一文はよく読んでください。これは実装が中途半端だという話ではありません。DescribeTable は DynamoDB が公開する唯一のスキーマであり、返すのはキー属性だけです。アイテムが plan、seats、active、tags、meta も持っているテーブルでの結果がこちらです。
"AttributeDefinitions": [
{"AttributeName": "pk", "AttributeType": "S"},
{"AttributeName": "sk", "AttributeType": "S"}
]5 つの属性が欠けているのは、DynamoDB がそれらを記録したことがないからです。イントロスペクションできるスキーマはキーとインデックスがすべてです。それ以外にクライアントがあなたのテーブルについて知っていることは、アイテムを読んで推測した結果です。
SQL の習慣が止まるところ
DataGrip のような IDE にお金を払う理由は、それが自分の SQL を理解してくれることです。DynamoDB に対しては、天井は IDE のものではなく文法のものであり、その文法は小さいのです。以下の各文は ExecuteStatement を通じて DynamoDB のエンドポイントに送られました。レスポンスはそのままの逐語です。
| 文 | レスポンス |
|---|---|
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 |
引っかかるのは最後の 2 つです。結果セットを普通の属性で並べ替えるのは、DynamoDB では遅いクエリではなく、そもそもクエリではありません。AWS が公開している SELECT の文法が許すのは、1 つの FROM のテーブルかインデックス、任意の WHERE、そしてハッシュキーかソートキーに限定された ORDER BY だけです(PartiQL SELECT リファレンス)。DataGrip はあなたの文を、その文法を迂回してコンパイルするのではなく、そのまま文法に渡します。ですから、ぶつかる天井は文法の天井です。
そのギャップを自分で埋めるということは、結合もグループ化も並べ替えもアプリケーションコードに書くということです。DynoTable の SQL Workbench はそれらを代わりにコンパイルし、あなたのキーと GSI に対してプランニングされたネイティブの Query と Scan の呼び出しにまで落とします。右辺のテーブルにパーティションキーで到達できない結合は、黙ってスキャンするのではなく拒否します。何を出力するかは DynamoDB のための SQL が扱います。
もう 1 つ、DataGrip に対応物がないのが AI エージェントです。ベンダーのエンドポイントではなく、あなた自身の AWS Bedrock の認証情報で動きます。そのアカウント境界とアクションごとの承認については AI チャットのドキュメントが明記しています。
DataGrip から乗り換える方法
- macOS、Windows、Linux 向けに DynoTable をダウンロードしてインストールします。
jdbc:dynamodb://のデータソースで使っていたものと同じ AWS プロファイルで接続を追加します。DynoTable は標準の AWS 認証情報チェーンを読むので、プロファイルとリージョンはそのまま引き継がれます。- 同じリージョンとテーブルに向けます。データは DynamoDB に留まるので、移行するものはありません。
- SQL Workbench を開き、上の 6 つの文のどれでも実行してみてください。結合の右辺テーブルにパーティションキーか GSI のパーティションキーで到達できる限り、6 つすべてがコンパイルされます。到達できない場合は Workbench がそう伝えます。
トライアルは30日間無料で、クレジットカードは不要です。その後も DynoTable は Free プランのままです — 閲覧、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. として返ってきます。これは DataGrip ではなく 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 を完全に省くとその前に失敗します。キー以外での並べ替えは、行が届いた後に、クライアントか自分のコードで行うしかありません。
料金のスナップショット
DataGrip は JetBrains の IDE サブスクリプション(All Products Pack / DataGrip 単体 — 現在のシート料金は JetBrains の価格ページを確認してください)の一部として販売されています。DynoTable は DynamoDB ワークベンチ単体のシート単位の価格です。Personal と Team の最新の数字は /pricing を参照してください。チームが Postgres/MySQL のためにすでに DataGrip を払っていて、DynamoDB にはたまにしか触らないのであれば、DataGrip を残したうえで DynamoDB ネイティブのクライアントを併用するほうが、DynamoDB のワークフローを全部 JDBC に通すより安く済むことがあります。DynamoDB が日々の主役なら、ステージングされたコミットと DynamoDB を理解した Workbench を備えた専用クライアントのほうが、修正までの時間でたいてい勝ちます。
関連ページ
- すべての DynoTable の代替については、完全な比較ハブを閲覧してください。
- リレーショナル的な感触のネイティブクライアントがお好みですか? TablePlus の比較を参照してください。
- DynamoDB GUI としての DynoTableと Dynobase の比較も参照してください。
- 無料の DynamoDB 式ビルダーでクエリを素早く構築してください。
最終確認 2026-08-28、JetBrains の DataGrip ドキュメントおよび AWS の PartiQL リファレンスに照らして確認しました。ValidationException のレスポンスは同日に ExecuteStatement 経由で DynamoDB Local 3.3.0 に対して再現したもので、文字列はそのままの逐語です。DataGrip は JetBrains s.r.o. の商標であり、ここでは識別目的でのみ言及しています。





