Snowflake

Receive Live Data deliveries as a Snowflake table shared directly to your account

Overview

The Snowflake integration delivers your Live Data data into a table that lives in a Live Data–owned Snowflake account and is shared directly to your Snowflake account using a Snowflake Direct Share. You query the shared table from your own warehouse – no S3 staging, COPY commands, or pipelines to maintain on your side.

For each destination you configure, Live Data provisions:

  • a dedicated share scoped to your account
  • a dedicated schema containing a single table named LDT_DELIVERY_DATA
  • a recurring delivery job that merges new records into that table on each scheduled run

Records are upserted using a MERGE keyed on (delivery_date, id), so re-runs of the same delivery date are idempotent and replace any earlier rows for that date.

🚧

Only AWS US-East is currently supported for Snowflake destinations.

Prerequisites

  • An active Snowflake account that can accept inbound Direct Shares.

  • Your Snowflake account locator in dot-separated form, either:

    • <account_name>.<region> – e.g. xy12345.us-east-1
    • <account_name>.<region>.<cloud> – e.g. xy12345.us-east-1.aws

    This is the value Snowflake returns under the account column of SHOW SHARES for your account, and is what Live Data needs in order to grant the share.

  • A role on your side with the IMPORTED PRIVILEGES privilege on the inbound share so it can read the shared database (see Consuming a share below).

Configuration Instructions

Steps

  1. Log into gotlivedata.com and navigate to the Integrations page.
  2. Find the Snowflake card and press Configure.
  3. Provide a name for the integration (this can be anything).
  4. Enter your Snowflake account locator in the Account name field, in one of the formats listed under Prerequisites.
  5. Press Save.

When you save, Live Data immediately creates the share, the schema, and the LDT_DELIVERY_DATA table on our side, and grants the share to the account you provided. If the account locator is not one Snowflake will accept on the share, the save will fail with an Invalid error on the Account name field – double-check the locator and try again.

Consuming the share

Once the destination is saved, an inbound share will appear in your Snowflake account. To make it queryable:

-- 1. Mount the inbound share as a database in your account.
CREATE DATABASE LDT_DELIVERIES FROM SHARE <live_data_provider_account>.<share_name>;

-- 2. Grant your reader role access to the mounted database.
GRANT IMPORTED PRIVILEGES ON DATABASE LDT_DELIVERIES TO ROLE <your_role>;

-- 3. Query the delivery table.
SELECT *
FROM LDT_DELIVERIES.<schema_name>.LDT_DELIVERY_DATA
WHERE delivery_date = CURRENT_DATE();

The exact <live_data_provider_account>, <share_name>, and <schema_name> values for your destination are visible in the Live Data UI after configuration.

How deliveries work

For each scheduled run, Live Data:

  1. Generates the report data for the run's delivery_date.
  2. Writes the data as one or more .jsonl.gz files to an internal S3 staging bucket.
  3. Calls a Snowflake stored procedure that loads each file into LDT_DELIVERY_DATA via a MERGE keyed on (delivery_date, id).

Because the MERGE is keyed on the record id, every delivered record must have a non-null top-level id field. The integration validates this on the way in – if a record is missing id, the delivery fails with a validation error rather than silently dropping the row.

Testing

Press the Test button on the destination to verify the integration. The test:

  • confirms the share exists and is granted to the account locator you configured, and
  • runs a SELECT COUNT(*) against LDT_DELIVERY_DATA to confirm the table is reachable.

If the test fails, the most common causes are an account locator that no longer matches what Snowflake recognizes (for example after an account rename or region migration), or the inbound share being revoked on the consumer side.

Updating the account

Editing the Account name on a saved Snowflake destination re-points the existing share at the new account. Your previously delivered data stays in place – only the consumer of the share changes. As with create, an invalid locator will fail with an Invalid error on the field.

Removing the integration

Deleting a Snowflake destination drops the underlying share on the Live Data side, which immediately revokes access from your account. Already-delivered data living in Live Data's account is no longer reachable from your side after deletion, so consider unloading anything you need into your own tables first.