Skip to main content

Accessing Your Data in Snowflake (Reader Account)

Learn how to log in to your Polar-managed Snowflake Reader Account, explore your BASE and TRANSFORM schemas, run queries, copy Polar report queries directly into Snowflake, and troubleshoot common issues.

Written by Sachi

Overview

Polar is powered by a Snowflake data warehouse, and as a paid add-on, you can get direct access to the underlying data through a dedicated Snowflake Reader Account β€” a fully isolated managed account provisioned by the Polar team.

πŸ’‘ This is a paid add-on. Snowflake Reader Account access is not included in your base Polar subscription. To get access or learn more about pricing, reach out to your CSM or contact support.

Once provisioned, your account comes with 70 Snowflake credits per month, which is sufficient for most analytics workloads. If you need more, reach out and we'll take a look.


Logging In

Polar will provide you with:

  • A Snowflake URL (e.g. https://xxxxxx.snowflakecomputing.com)

  • A username and temporary password β€” change it on first login

Navigate to your URL and sign in. Once logged in, open a Worksheet to start writing queries.


Understanding Your Database Structure

Your main database is called SHARED_DB. It is a read-only copy of the data powering your Polar account β€” you can query it freely, but you cannot create, modify, or delete records within it.

It contains two primary schemas:

TRANSFORM schema

The "gold" layer β€” data that has been cleaned, joined, and optimized for analytics. Start here when exploring your data. Key tables include:

  • shopify_sales_main_new β€” curated Shopify orders and line items; gross/net/total sales, returns, discounts, and customer info

  • ads_campaign_and_device β€” blended ad performance across all platforms (Google, Meta, TikTok, etc.)

  • ga4_sessions_analytics β€” GA4 sessions by channel, device, and country

  • klaviyo_unique_campaign_and_date β€” daily campaign performance (sends, opens, clicks, revenue)

  • amazonsp_order_items β€” Amazon order-level data including fees, refunds, and adjustments

To find tables for a specific connector, start typing its name in the Snowflake worksheet β€” autocomplete will surface what's available.

BASE schema

The "bronze" layer β€” raw, unprocessed data pulled directly from your integrations (Shopify, Facebook Ads, Google Ads, etc.). Useful for auditing what data Polar is ingesting, but generally not structured for reporting.

CUSTOM_DATASETS schema (if applicable)

Some accounts have a third schema called CUSTOM_DATASETS, which contains Custom Datasets you've built in Polar. If you expect to see tables here but the schema appears empty, contact support β€” this is usually a permissions issue.


Running Your First Query

Always reference tables using the full three-part path: database.schema."table_name":

sql

SELECT * FROM SHARED_DB.TRANSFORM."shopify_sales_main_new" LIMIT 100;

Note: Because SHARED_DB is a shared database, you can query data from it but you cannot view object definitions (DDL) for tables and views. This is expected behavior for Snowflake shared databases.


Extracting Queries from Polar Reports

You can copy the exact SQL behind any metric or report in Polar and run it directly in Snowflake:

  1. Open Developer Tools β€” right-click anywhere in Polar and select Inspect, then go to the Console tab.

  2. Enable debug mode β€” paste the following and press Enter:
    ​ localStorage.setItem('synth-debug-mode', 1)
    The result should be undefined. If you see an error, double-check the single quotes.

  3. Trigger a request β€” go to the Network tab and type compose in the filter bar. Then change the date range in your Polar report to trigger a new data request.

  4. Copy the query β€” click one of the compose requests, go to Preview, right-click on the query field, and select Copy string contents.

  5. Paste into Snowflake β€” open a worksheet, paste the query, and make the following two adjustments before running:

Adjustment 1 β€” Replace the database name
The query will reference an internal database like TENANTASSF_XXXXX. Use Find & Replace (Cmd+F / Ctrl+F) to replace all instances with SHARED_DB.


​Adjustment 2 β€” Fix the exchange rate table (if present)
If your query references exchange_rate_tenant_new, you'll see an error like "Object does not exist or not authorized". This is because this view references objects outside your shared database. Change its database prefix from TENANTASSF_XXXXX or SHARED_DB to CUSTOM_DB.


​If your store is in USD, you may not need the exchange rate table at all β€” all financial data in Snowflake is already normalized to USD. You can safely remove the exchange_rate_tenant_new reference from the query.

Run the query β€” results should match exactly what you see in Polar.


Creating Your Own Views and Tables

Since SHARED_DB is read-only, you'll need a separate database for any custom work:

sql

CREATE DATABASE CUSTOM_DB; CREATE SCHEMA CUSTOM_DB.TRANSFORM;

You can then create views that pull from SHARED_DB:

sql

CREATE OR REPLACE VIEW CUSTOM_DB.TRANSFORM."my_custom_view" AS (   SELECT *   FROM SHARED_DB.TRANSFORM."shopify_sales_main_new"   LIMIT 100 );

Connecting to BI Tools

Your Snowflake Reader Account can be connected to external tools like Power BI, Python, and DataGrip. The general setup is the same: configure a Snowflake connection using your account URL, username, password, role, warehouse, and database (SHARED_DB).

Note for Power BI: If you're able to connect via the desktop app but not the browser version, and see an error like "Your user account has been temporarily locked", this is typically caused by too many failed login attempts from the browser. Wait a few minutes and try again, or reach out to support to have your account unlocked.

Can I use the Reader Account as a write destination (e.g. for Airbyte)? No β€” Reader Accounts are read-only by design. If you need to push data into Snowflake from an external tool, contact your CSM to discuss options.


Snowflake Notebooks

If you want to use Snowflake Notebooks, you'll need a separate writable database to store them (SHARED_DB is read-only).


Adding Additional Users

Your Reader Account comes with the user credentials Polar provisions for you. To give additional team members access, your Snowflake Account Admin can create new users directly within your managed account.


FAQ

I can see table names in INFORMATION_SCHEMA but get "does not exist or not authorized" when querying.

This is a permissions issue. Your role may have USAGE on the schema but is missing SELECT grants on the actual tables. Contact support and we'll grant the necessary permissions.

Tables are missing from the CUSTOM_DATASETS schema.

New tables added to Custom Datasets may not automatically get permissions granted to your reader role. This is a known issue β€” contact support to have the missing permissions applied.

I can't view the DDL / object definition for a table or view.

This is expected behaviour for Snowflake shared databases. You can query data but cannot inspect the underlying view definitions.

Can I write data into SHARED_DB?

No. SHARED_DB is read-only. If you want to store custom tables or views, create a separate database (see Section 5 above).


​

Did this answer your question?