Power BI は DynamoDB に接続できますか?
直接はできません。AWS が DynamoDB 自体の ODBC / JDBC ドライバーを提供していないため、Power BI にネイティブの DynamoDB コネクタはありません。接続は間接的に行います。フェデレーテッドクエリか S3 へのデータエクスポート経由で Amazon Athena からテーブルにクエリし、Athena ODBC コネクタを使う方法。あるいは CData などのサードパーティ製 ODBC ドライバーを使う方法です。
直接コネクタが存在しない理由
DynamoDB は SQL のエンドポイントではなく、NoSQL の API 駆動サービスであり、AWS はそのための ODBC/JDBC ドライバーを提供していません。Power BI のデータソースは SQL 形式の接続性を前提としているので、橋渡しが必要になります。
選択肢 1: Amazon Athena 経由
Athena はフェデレーテッドクエリのコネクタを使って DynamoDB にクエリできますし、DynamoDB から Amazon S3 にエクスポートしたデータにクエリすることもできます。Power BI はその後、Athena ODBC コネクタで Import または DirectQuery モードとして Athena に接続します。
選択肢 2: サードパーティ製の ODBC ドライバー
CData などのベンダーは、DynamoDB と直接やり取りして SQL ライクなソースとして見せる ODBC ドライバーや Power BI コネクタを販売しています。
選択肢 3: データをエクスポートする
DynamoDB を S3(または CSV)にエクスポートし、そのファイルを Power BI に読み込みます。ある時点のスナップショットのレポートには最も簡単です。
DirectQuery の更新が実際にかかるコスト
Athena のコネクタは DynamoDB にボルト留めされた SQL エンジンではありません。あなた自身が呼ぶのと同じ API を呼びます。そして AWS のコネクタリファレンスは、それがいつスキャンになるのかを明確に述べています。
Athena DynamoDB コネクタはパラレルスキャンに対応しており、DynamoDB クエリの一部として述語のプッシュダウンを試みます。ハッシュキーの述語が
X個の異なる値を持つ場合、DynamoDB へのX回のクエリ呼び出しになります。それ以外の述語のケースはすべてY回のスキャン呼び出しになり、Yはテーブルのサイズとプロビジョンドスループットに基づいてヒューリスティックに決まります。
つまりパーティションキーで絞り込まれたレポートのビジュアルは Query になります。それ以外はすべてスキャンになります。プッシュダウンされる 8 つの演算子(AND、EQUAL、NOT_EQUAL、LESS_THAN、LESS_THAN_OR_EQUAL、GREATER_THAN、GREATER_THAN_OR_EQUAL、IS_NULL)はフィルター式に押し込まれますが、DynamoDB はそれをアイテムを読んだ後に適用します。プッシュダウンが減らすのはワイヤーを流れる量であって、支払う額ではありません。
値段を付けましょう。DynamoDB は Query や Scan を、評価したアイテムの累積サイズに対して 4 KB 単位に丸めます。つまりスキャンした 1 GiB は 262,144 の強い整合性の読み取りユニット、結果整合性なら 131,072 になります。当サイトの料金計算ツールの裏にある us-east-1 のオンデマンド料率、読み取りリクエストユニットあたり $0.000000125 では:
| テーブルサイズ | フルスキャン 1 回 | 30 日間、毎時更新 | 15 分ごとに更新 |
|---|---|---|---|
| 5 GB | $0.08 | $58.98 | $235.93 |
| 20 GB | $0.33 | $235.93 | $943.72 |
| 50 GB | $0.82 | $589.82 | $2,359.30 |
読み取りユニットだけの金額です。Athena、コネクタの Lambda 関数、そのスピル用 S3 バケットはこれに上乗せで課金され、下限はデータ量を上回ることもあります。"Empty tables and very large tables which have a sparse amount of partition keys might see some additional RCUs charged beyond the amount of data scanned."
これはスケジュール実行の Import モードの話です。10 人が開きっぱなしにした DirectQuery のレポートは、クリックのたびにこのスキャンを走らせ直します。
さらに詳しく
DynamoDB を CSV にエクスポートを参照してください。SQL 形式の問い — JOIN、GROUP BY、集計 — そのものについては、DynoTable の SQL Workbenchが ODBC の橋渡しなしにテーブルへ直接実行します。テーブルのデータをクエリ・エクスポートするには DynoTable をダウンロードしてください。
参考資料
- Use the Amazon Athena Power BI connector — Amazon Athena User Guide
- Amazon Athena DynamoDB connector — Amazon Athena User Guide
- DynamoDB data export to Amazon S3: how it works — Amazon DynamoDB Developer Guide
- DynamoDB read and write operations — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。
コネクタの挙動とスキャンコストの表は 2026-07-28 に検証しました。引用した文はその日に取得した Athena コネクタのリファレンスと DynamoDB の Scan ページのもので、金額は同期済みの料金テーブルにある us-east-1 のオンデマンド読み取り料率(AWS pricing API 2026-07-22 公開分)を使っています。