---
title: "AWS Athena to Data Studio: Dashboards on One Governed Data Mart"
canonical: "https://www.owox.com/blog/articles/athena-looker-studio-data-mart"
updated: "2026-10-22"
---

# How to Connect AWS Athena to Data Studio

To connect AWS Athena to Data Studio, publish the query as a Data Mart on an Athena storage, create a Data Studio destination in OWOX Data Marts, switch the Data Mart on for it, then add the OWOX Data Marts connector in Data Studio with the destination's JSON Config. Data Studio reads through OWOX with a cache you set, so each dashboard refresh costs at most one Athena query per cache window.

[Amazon Athena](/blog/topics/athena) · Updated October 20, 2026 · 9 min read

![How to Connect AWS Athena to Data Studio](https://cdn.owox.com/www/content-marketing-article/athena-looker-studio-data-mart/thumbnail/1-qycj2z.png/public)

A dashboard author changes the date range and, unless a cache answers, Athena scans the table again. Nothing is wrong with the dashboard: it asks for its data every time someone opens or refreshes it, and Athena bills every scan, $5 per terabyte on the [AWS pricing page](https://aws.amazon.com/athena/pricing/) (checked October 2026).

This guide connects Athena to Data Studio through [OWOX Data Marts](https://www.owox.com/app-signup), so that the dashboards read one published definition, through a cache you control, instead of querying raw tables. Every OWOX claim below comes from the OWOX docs.

## What a dashboard does to an Athena bill

Data Studio works in pull mode. It asks OWOX Data Marts for data when a report is opened or refreshed, and OWOX reads from your storage. The [Data Studio destination guide](https://docs.owox.com/docs/destinations/supported-destinations/data-studio/) describes the cache in between: within the **Cache Lifetime**, OWOX serves the stored result and does not re-run the query. The default is 5 minutes, and the options run from 5 minutes to 12 hours.

That setting is a billing decision. For a Data Mart that scans 50 GB, which is 0.0488 TB and $0.244 a query at $5 per TB, the most a single request can cost per day is bounded by the lifetime:

| Cache Lifetime | Queries a day at most | About, per day |
| --- | --- | --- |
| 5 minutes | 288 | $70 |
| 1 hour | 24 | $5.90 |
| 12 hours | 2 | $0.49 |

These are ceilings for one repeated request, scan charges only, with the 50 GB as an example. Different filters in a report are different requests. The rule that follows is short: **set the cache lifetime to the load schedule of the table**. If the table loads once a day, a 12-hour cache loses nothing and a 5-minute cache pays for the same data hundreds of times.

Two sourced limits shape the rest of the design. Each Data Studio request must stay within the connector’s `getData()` limit of 1,000,000 rows and a response limit of 50 MB per call, according to the OWOX guide. A dashboard should read an aggregated Data Mart, not raw events.

## The route: a storage, a Data Mart, a destination, a connector

Four pieces replace the direct connection, and each has one job.

1.  **A storage** is your Athena: region, output bucket and an IAM access key.
2.  **A Data Mart** is the query, table or view an analyst publishes under a business name.
3.  **A destination** is a Data Studio entry in OWOX Data Marts that holds the secret JSON Config.
4.  **A connector** is the OWOX Data Marts connector in Data Studio’s gallery, which uses that config to list the Data Marts you switched on.

Your data stays in S3 and Athena stays the query engine. OWOX Data Marts does not transform the data: the SQL is the analyst’s.

## The Turning Point

OWOX Data Marts

See your first report built in real time. _15 minutes._

1.  Connect your data warehouse
2.  Pick your metrics
3.  Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

[Book a Demo](/book-a-call)

We'll use your actual use case

## What you need

*   An AWS account with Athena enabled, a Glue database or tables to query, and an S3 bucket or folder for query results.
*   A **project role that can create destinations**. Project Admins and Data Owners can; Business Users can create and manage destinations they own.
*   A **Google account with access to Data Studio**.

## Step 1: connect Athena and publish a Data Mart

In OWOX Data Marts, open **Storages**, click **\+ New Storage** and pick [AWS Athena](/data-storages/aws-athena). The [storage guide](https://docs.owox.com/docs/storages/supported-storages/aws-athena/) lists the fields: a title, the region, an output bucket or a folder in it, and the Access Key ID and Secret Access Key of an IAM user. The policy in that guide covers Athena queries, Glue tables and S3 results, and applies to all resources, so scope it to your own buckets and databases and give the key to a dedicated user.

A Data Mart on Athena can be defined four ways, and the [docs](https://docs.owox.com/docs/getting-started/setup-guide/sql-data-mart/) give the format and the use case for each:

*   SQL: a query you write against existing tables, with joins and business rules. The docs advise keeping each query focused on one business question, which is also what keeps it reusable.
*   Table: points at one existing table, written as `catalog.schema.table`. Use it when the table is already cleaned, modeled and joined, so the Data Mart adds a name, a description and an owner but no new logic.
*   View: points at a view, written as `catalog.schema.viewName`. Use it when the logic already lives in a warehouse view and you do not want to paste its SQL a second time.
*   Pattern: queries several similarly named tables as one dataset with a wildcard, such as one table per day (`events_20250731`, `events_20250801`).

For a dashboard the useful question is how much each one reads. A table or a view over an already aggregated structure is the cheapest to query again and again. A SQL Data Mart that joins raw tables runs that join on every cache miss.

Build the Data Mart the dashboard needs: one business question, at the grain the dashboard shows. A daily revenue-by-channel Data Mart is a few hundred rows, not millions. Save it and publish it. A Data Mart cannot be validated or published until the storage is fully configured, and only a published one can be switched on for Data Studio.

## Step 2: name the fields once

When the query is saved, the **Output Schema** is generated with column names and types. Add an alias and a description to each field there.

This is where the dashboard gets its vocabulary. The destination guide is explicit: set field names and descriptions in the Data Mart’s Output Schema, and Data Studio shows them in the field list of the data source. A column called `rev_net_amt` with the alias Net Revenue and a one-line description is read by every dashboard author the same way. After you change the schema, open the data source in Data Studio and click **Refresh fields** or **Reconnect** so it picks up the change.

## Step 3: create the Data Studio destination

Open **Destinations**, click **\+ New Destination**, pick Data Studio as the type, give it a title such as “Data Studio Access (Marketing Team)” and save. Open the destination and copy the **JSON Config**.

The JSON Config contains a secret key, so treat it like a password: paste it only into the Data Studio connector. If it leaks, use **Rotate Secret Key** on the destination, then update every connector that used the old config. The same lever revokes access later, because data sources that hold an old config stop working until they are updated.

## Step 4: switch the Data Mart on and set the cache

Open the published Data Mart, go to its **Destinations** tab and find the Data Studio row. Click the toggle to make the Data Mart available in Data Studio. Click the row to set the **Cache Lifetime** and to choose which fields the report exposes under **Report Columns**, then save. If the Data Mart uses joinable Data Marts, joined fields appear in that list as well.

The toggle shows “Waiting for Data Studio to fetch data” until Data Studio has requested the data once.

## Step 5: add the data source in Data Studio

In Data Studio’s gallery, find the **OWOX Data Marts** connector and authorize it with your Google account. Give the connection a unique Configuration Display Name, paste the JSON Config and click Next. Select that connection configuration, click Next, pick the Data Mart and click Connect. Review the field list, then click Create report and Add data to your report.

One connection configuration serves several Data Marts exposed through the same destination: reuse it and pick a different Data Mart for each data source. Create a separate configuration for each OWOX destination or project.

## Cap what a dashboard can ask for

Report Columns decide which fields Data Studio sees at all, and **a field you leave out cannot be requested**. The output controls then narrow the rows. The [output controls guide](https://docs.owox.com/docs/getting-started/setup-guide/output-controls/) lists four, applied at query time with no change to the Data Mart’s SQL:

| Control | What it does |
| --- | --- |
| Filters | Drop rows from the final result, after all joins |
| Slices | Narrow a joined Data Mart before the join (blended reports only) |
| Sort | Order the result by one or more columns |
| Limit | Cap the total number of rows |

Filters have operators for each column type, including relative dates such as Last N days, which the guide says are evaluated again on every run, so a rolling dashboard stays current without anyone editing a date. Several filters combine with AND, OR between filters is not supported, and an is-any-of rule takes up to 500 values.

One caution follows from how the guide describes filters: they run against the final SELECT, after the joins. Treat them as shaping what Data Studio receives. Anything that has to shrink what Athena scans, such as a date window on a table partitioned by date, belongs in the Data Mart’s own SQL.

## Fields from more than one Data Mart

When a Data Mart uses [joinable Data Marts](/features/joinable-data-marts), the joined fields appear in the same Report Columns list as the native ones, so one dashboard can mix them. The [joinable Data Marts guide](https://docs.owox.com/docs/getting-started/setup-guide/joinable-data-marts/) sets the conditions: both Data Marts must live on the same storage, and Athena is a supported one. You declare the relationship once, as one or more pairs of fields, and every report on that Data Mart can use it.

The generated query pre-aggregates the joined Data Marts by their join key before merging them, so **the result never has more rows than the source Data Mart**. A one-to-many join cannot multiply your revenue, and nobody rewrites the join in each dashboard. The generated SQL is visible: you can preview it, or copy it into a standalone SQL Data Mart.

## When the dashboard shows nothing

The docs list the first checks:

*   **The Data Mart dropdown is empty.** Confirm the Data Mart is published, the toggle is on, you pasted the right JSON Config and the destination’s secret key was not rotated afterwards.
*   **A field is missing.** Check Report Columns on the Data Mart, then refresh fields in the data source.
*   **The toggle stays on “Waiting”.** Open a report on the data source or click Refresh data to trigger a fetch.
*   **A run is not a success.** Open the Data Mart’s Run History and read the failed run: warehouse or query errors, storage credentials, row or size limits.
*   It is slow or times out. Select fewer columns, add filters or a limit in Report Columns and the output controls, or aggregate the Data Mart first.

Refresh data in Data Studio asks for the data again, but OWOX can still answer from the cache until the lifetime ends. The destination configuration shows when Data Studio last fetched.

## Keeping the Athena bill down

Everything above comes back to how much each cache miss scans. **The cheapest query is the one that reads a small table**, so build the dashboard on an aggregated Data Mart, backed by a summary table that you rebuild on the table’s load schedule, or a view over one. AWS’s own pricing example shows why storage format matters: a 3 TB uncompressed text table costs $15 to query one column, and the same data compressed as Parquet, a columnar format, costs $1.25, because Athena reads only the column the query names.

**Cache lifetime, a small Data Mart and columnar storage multiply.** For a deeper read on how Athena bills, see [AWS Athena 101](/blog/articles/aws-athena-serverless-sql-engine-on-s3).

## Data Studio or a spreadsheet for the same Data Mart

The [Reports guide](https://docs.owox.com/docs/reports/) splits destinations into two modes. In push mode OWOX delivers the data on a manual or scheduled run: Google Sheets, Email, Slack, Microsoft Teams and Google Chat work this way. In pull mode the destination asks OWOX when someone opens or refreshes it: Data Studio and Excel work this way, and neither can be scheduled, because the tool reads the data itself.

For Athena **the difference is the bill**. A push report costs one query per scheduled run, however many people read it. A pull dashboard costs up to one query per cache window for each distinct request, while someone is looking at it. Put a fixed deliverable on a schedule and keep the dashboard for exploration.

## Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

*   No AI hallucinations
*   Analyst-governed definitions
*   Every number traces to SQL

[Get started free](https://www.owox.com/app-signup)

## FAQ

## Frequently Asked Questions

Why is the Data Mart dropdown empty in Data Studio?

Check four things: the Data Mart is published, the Available in Data Studio toggle is on for the destination, you pasted the correct JSON Config, and the destination's secret key was not rotated after you pasted it.

How often does Data Studio query Athena?

Data Studio asks OWOX Data Marts for data when a report is opened or refreshed. If a cached result is still valid, OWOX serves it without running a query; after the Cache Lifetime ends, OWOX reads from Athena again. The default lifetime is 5 minutes, and you can choose anything from 5 minutes to 12 hours on the Data Mart's Destinations tab. Clicking Refresh data in Data Studio asks again, but OWOX can still answer from the cache until the lifetime expires.

Why does my Data Studio report on Athena time out or hit a row limit?

Each Data Studio request must stay within the connector's limit of 1,000,000 rows and a response size of 50 MB per call. Select fewer columns in the report's Report Columns, add filters or a limit in the output controls, or aggregate the Data Mart before using it as a data source. The Data Mart's Run History shows the details of a failed run.

How do I revoke a Data Studio connection to my Data Marts?

Rotate the secret key on the Data Studio destination in OWOX Data Marts, or delete the destination. Existing Data Studio data sources that use the old JSON Config stop working until they are updated with a valid one. Removing a data source in Data Studio removes only that Data Studio asset: it does not revoke access from the OWOX side.

How do I connect AWS Athena to Data Studio with OWOX Data Marts?

Publish the query, table or view as a Data Mart on an Athena storage, then create a Data Studio destination in OWOX Data Marts and copy its JSON Config. Switch the Data Mart on for that destination on its Destinations tab. In Data Studio, add the OWOX Data Marts connector, authorize it, paste the JSON Config, pick the Data Mart and click Connect. The JSON Config holds a secret key, so paste it only into the connector.

## Topics

[Amazon Athena](/blog/topics/athena)

## Related articles

[Amazon Athena · How to Connect AWS Athena to Google Sheets Without CSV Exports · October 19, 2026](/blog/articles/athena-google-sheets-connection)

[Amazon Athena · AWS Athena 101: Serverless SQL on S3 Explained · October 1, 2026](/blog/articles/aws-athena-serverless-sql-engine-on-s3)

[Amazon Athena · AWS Redshift vs Athena: Key Differences Explained · October 21, 2026](/blog/articles/redshift-vs-athena-analytics)

[See all articles →](/blog/articles)

## Book a call

You are booked. The invitation is on its way to , with the calendar invite and the meeting link.

[Reschedule](#)

[Cancel](#)

## Schedule a meeting

## Schedule in person meeting at Tip Top Toronto

You are booked. The invitation is on its way to , with the calendar invite and the meeting link.

[Reschedule](#)

[Cancel](#)

## Links

Pages this page links to, on this site and on docs.owox.com. Where the page has a Markdown twin, its address follows the link.

- [Amazon Athena](https://www.owox.com/blog/topics/athena) — /blog/topics/athena.md
- [OWOX Data Marts](https://www.owox.com/app-signup)
- [Data Studio destination guide](https://docs.owox.com/docs/destinations/supported-destinations/data-studio)
- [Book a Demo](https://www.owox.com/book-a-call) — /book-a-call.md
- [AWS Athena](https://www.owox.com/data-storages/aws-athena) — /data-storages/aws-athena.md
- [storage guide](https://docs.owox.com/docs/storages/supported-storages/aws-athena)
- [docs](https://docs.owox.com/docs/getting-started/setup-guide/sql-data-mart)
- [output controls guide](https://docs.owox.com/docs/getting-started/setup-guide/output-controls)
- [joinable Data Marts](https://www.owox.com/features/joinable-data-marts) — /features/joinable-data-marts.md
- [joinable Data Marts guide](https://docs.owox.com/docs/getting-started/setup-guide/joinable-data-marts)
- [AWS Athena 101](https://www.owox.com/blog/articles/aws-athena-serverless-sql-engine-on-s3) — /blog/articles/aws-athena-serverless-sql-engine-on-s3.md
- [Reports guide](https://docs.owox.com/docs/reports)
- [Amazon Athena · How to Connect AWS Athena to Google Sheets Without CSV Exports · October 19, 2026](https://www.owox.com/blog/articles/athena-google-sheets-connection) — /blog/articles/athena-google-sheets-connection.md
- [Amazon Athena · AWS Redshift vs Athena: Key Differences Explained · October 21, 2026](https://www.owox.com/blog/articles/redshift-vs-athena-analytics) — /blog/articles/redshift-vs-athena-analytics.md
- [See all articles →](https://www.owox.com/blog/articles) — /blog/articles.md
