Getting Magento 2 data into Looker Studio

Magento's sales tables are ready for charting almost as they are. The question is whether the database doing the charting should be the one taking orders.

What makes this trickier than it looks

There is no Magento connector in Looker Studio, so the realistic routes are its MySQL connector aimed at your store, or a copy. The sales side rewards you quickly: sales_order has real columns, so revenue by month is one short custom query and a chart.

The catalogue punishes you just as quickly. Because product attributes live in EAV, a "top products by revenue" chart that shows names rather than SKU ids needs joins through catalog_product_entity_varchar and eav_attribute. Written once as a custom query that's fine; written six times across six charts, it becomes six places for the definition to drift.

And a dashboard is not one query. Each chart issues its own, they fire when the report opens and when the cache expires, and they fire for everyone you shared the link with. Magento installs are large — 300 to 400 tables is normal — and the store database is already doing indexing work of its own. Reporting traffic on top of that is a capacity decision, not a detail.

Three ways to connect it

All three end with a Magento dashboard in Looker Studio. They differ in what your report is allowed to do to your store.

The MySQL connector, pointed at your store

Looker Studio connects straight to Magento's database with custom queries you write.

  • Free, built in, full control of the SQL
  • Live — no copy to keep in sync
  • Production must accept connections from Google's IP ranges
  • Every viewer and every refresh queries the store database
  • The EAV joins run against production too, and they're not cheap

Magento Advanced Reporting

Magento's own hosted reporting, enabled from the admin, with prebuilt dashboards.

  • No infrastructure and no SQL
  • Understands the Magento data model out of the box
  • Fixed reports — you get its questions, not yours
  • Your data goes to a third-party service to be processed
  • Not a Looker Studio source, so it doesn't sit alongside your other reporting

The PostgreSQL connector, pointed at a copy

BeQuery

BeQuery clones Magento into an isolated PostgreSQL copy that Looker Studio's built-in PostgreSQL connector reads directly.

  • Dashboards can be as heavy as they like; production never sees them
  • Native connector — no export step, no community add-on, no subscription
  • Read-only credentials scoped to your schema: SELECT only, no writes possible
  • Proven end-to-end on a real Magento 2 store: 387 tables cloned and verified
  • External credentials are a Cloud or Enterprise feature
  • Fresh to your sync schedule rather than to the second

Connecting it, step by step

  1. 1

    Connect your store to BeQuery

    Read-only MySQL credentials, host and port. BeQuery clones the database into an isolated PostgreSQL copy, verified against the source on every sync.

  2. 2

    Create a read-only external credential

    In Settings → External connections, generate a PostgreSQL user scoped to your team's schema. It is SELECT-only: it cannot write, alter or drop anything, and it can't see another workspace. External connections are available on the Cloud and Enterprise plans.

  3. 3

    Add a PostgreSQL data source in Looker Studio

    Add data → PostgreSQL → paste the host, database, user and password. No community connector, no OAuth dance, nothing to install: PostgreSQL is one of Looker Studio's built-in connectors.

  4. 4

    Build on a custom query, not a whole table

    Choose the custom query option and paste SQL that already aggregates. Your report then reads a few hundred rows instead of scanning your largest table on every interaction — which keeps dashboards fast and stays inside the 30-second statement timeout on external credentials.

Point it straight at your store, or at a copy?

Both are legitimate. With Magento the deciding factor is usually the cost of the queries, not just who opens the report.

Direct is defensible when

  • One store, a private report, and you accept opening the database to Google
  • You need the figures live to the second for an operational reason
  • A replica already exists and reporting is exactly what it's for

Put a copy in between when

  • The dashboard goes to a team, a client or an agency
  • It's several charts, each firing its own EAV-joined query
  • Your Magento database is already working hard enough

Common questions

How do I chart product names instead of entity ids?

Join catalog_product_entity to catalog_product_entity_varchar on entity_id, restricted to the attribute_id that eav_attribute gives for 'name' on the product entity type. Do it once in the custom query behind the data source rather than per chart — that way the definition lives in one place and every chart inherits it.

Is Magento support actually tested?

Yes. It was validated end-to-end on a real Magento 2 store — 387 tables cloned and verified, with the insights checked against the source rather than assumed.

Can't Looker Studio just connect to my MySQL database directly?

It can — MySQL is a built-in connector, and for a small shop that's a legitimate choice. What you're accepting is that your production database has to be reachable from Google's IP ranges, and that every viewer opening the report, and every scheduled refresh, runs queries against the server your customers are checking out on. It works fine until the report gets popular or someone builds a dashboard with twelve charts on it.

Do I need to export anything?

No, and this is the real difference from the BigQuery route. Looker Studio speaks PostgreSQL natively, and BeQuery's clone is a real PostgreSQL database — so the report reads the copy directly. There's no load step to schedule and nothing to keep in sync beyond the sync you already have.

Which plan do I need?

External PostgreSQL credentials — the thing Looker Studio connects with — are available on the Cloud (pay-as-you-go) and Enterprise plans. The clone itself, the SQL editor and the in-app dashboards work on every plan, including the free tier.

How fresh will the dashboard be?

As fresh as your last sync, plus whatever caching you leave on in Looker Studio. Sync runs nightly on lower plans and down to roughly every minute on higher ones. For a report someone opens each morning, nightly is usually what people settle on anyway.

See it on your own store first

Free tier, no credit card, read-only access. Production is never written to — and you can explore the demo store before connecting anything.