Can Power BI connect to DynamoDB?

Not directly. Power BI has no native DynamoDB connector, because AWS ships no ODBC or JDBC driver for DynamoDB itself. You connect indirectly: query the table through Amazon Athena — via a federated query or a data export to S3 — using the Athena ODBC connector, or use a third-party ODBC driver such as CData's.

Why there is no direct connector

DynamoDB is a NoSQL API-driven service, not a SQL endpoint, and AWS does not provide an ODBC/JDBC driver for it. Power BI's data sources expect SQL-style connectivity, so a bridge is needed.

Option 1: through Amazon Athena

Athena can query DynamoDB using its federated-query connector, or query data you export from DynamoDB to Amazon S3. Power BI then connects to Athena with the Athena ODBC connector in Import or DirectQuery mode.

Option 2: a third-party ODBC driver

Vendors such as CData sell ODBC drivers and Power BI connectors that talk to DynamoDB directly and expose it as a SQL-like source.

Option 3: export the data

Export DynamoDB to S3 (or CSV) and load the file into Power BI — simplest for point-in-time reporting.

What a DirectQuery refresh actually costs

The Athena connector is not a SQL engine bolted onto DynamoDB. It calls the same API you would call yourself, and the AWS connector reference is specific about when that becomes a scan:

The Athena DynamoDB connector supports parallel scans and attempts to push down predicates as part of its DynamoDB queries. A hash key predicate with X distinct values results in X query calls to DynamoDB. All other predicate scenarios result in Y number of scan calls, where Y is heuristically determined based on the size of your table and its provisioned throughput.

So a report visual filtered on the partition key becomes a Query. Everything else becomes scans. The eight operators that do push down (AND, EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, IS_NULL) push into a filter expression, which DynamoDB applies after reading the items. Pushdown trims what crosses the wire, not what you pay for.

Price that. DynamoDB rounds a Query or Scan to 4 KB on the cumulative size of the items it evaluated, which puts one scanned GiB at 262,144 strongly consistent read units, or 131,072 eventually consistent ones. At the us-east-1 on-demand rate behind our pricing calculator, $0.000000125 per read request unit:

Table sizeOne full scanRefreshed hourly for 30 daysRefreshed every 15 minutes
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

Read units only. Athena, the connector's Lambda function and its S3 spill bucket bill on top, and the floor can sit above the data volume: "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."

That is the case for Import mode on a schedule. A DirectQuery report left open by ten people re-runs those scans on every click.

Go deeper

See export DynamoDB to CSV. For the SQL-shaped questions themselves — JOIN, GROUP BY, aggregates — DynoTable's SQL Workbench runs them directly against your tables, no ODBC bridge required. Download DynoTable to query and export your table data.

References

Last verified 2026-07-13 against the official AWS documentation linked above.

Connector behavior and the scan-cost table verified 2026-07-28: the quoted sentences come from the Athena connector reference and the DynamoDB Scan page as fetched that day, and the dollar figures use the us-east-1 on-demand read rate in our synced pricing table (AWS pricing API publication 2026-07-22).

Work with DynamoDB without the Console

A fast DynamoDB desktop client that runs the real SQL DynamoDB can’t — JOINs, GROUP BY, aggregates — with visual editing and an AI agent on your own Bedrock keys.

Free 30-day trial, no credit card — then the Free plan with no time limit.