BigQuery Data Ingestion

Last updated: May 27, 2026

Overview

This document explains how to grant Unwrap access to your BigQuery data and thereafter, how to configure the BigQuery integration inside Unwrap. We use Google Cloud service accounts to securely access only the specific data you authorize.

Step 1: Grant Access to Our Service Account

  1. Log in to your Google Cloud Console at https://console.cloud.google.com/

  2. Navigate to BigQuery by clicking on "BigQuery" in the navigation menu

  3. Find the dataset you want to share in the Explorer panel

  4. Click on the dataset name to open it

  5. Click on "SHARE DATASET" button at the top

  6. In the "Add principals" field, enter our service account email: unwrap-data-read@bigqueryconnector-452922.iam.gserviceaccount.com

  7. Select the appropriate role:

  8. BigQuery Data Viewer - For read-only access

  9. Click "Add" and then "Done"

Step 2: Specify Tables or Views (Optional)

Give Unwrap access to the tables or views you want to analyze.

Option A: Share Individual Tables

  1. In BigQuery, navigate to the specific table you want to share

  2. Click on the table name, then select "Share" from the actions menu

  3. Add our service account email and assign the appropriate permission

  4. Repeat for each table you want to share

  1. Create a view that exposes only the data you want to share: sql CREATE VIEW `your-project.your_dataset.your_view_name` AS SELECT column1, column2, ... FROM `your-project.your_dataset.your_table` WHERE [optional filtering conditions];

  2. Share only this view with our service account following Step 1 above

  3. This ensures we can only see the specific data defined in the view

Step 3: Configure the integration in Unwrap

3.1 Create the integration

  1. In Unwrap, go to Integrations.

  2. Select BigQuery.

  3. Enter an Integration name (for your team’s reference).

  4. Fill in the fields described below, then click Validate, then Submit.

Your Unwrap contact will provide Account Identifier if you do not already have it (for example bigqueryconnector-452922). Use the value Unwrap gives you.

3.2 Choose how to read your data

Use either of the following approaches (choose exactly one):-

  • Fill Table ID and leave SQL Query empty, or

  • Fill SQL Query and leave Table ID empty.

Option A: Table ID

Choose this when your table already has:

  • a feedback text column,

  • a real date or timestamp column Unwrap can sort on, and

  • a unique ID per row.

You enter the table name and column names from BigQuery. Unwrap reads the table for you.

Option B: SQL Query (using custom SELECT)

Choose this when:

  • the table has no suitable date column,

  • you use a view or need filters or joins, or

  • you want full control over what is selected.

Here, you write a full BigQuery SELECT in SQL Query. Use AS to name result columns, then enter those same names in Entry ColumnDate Column, and Unique ID Column. You leave Table ID as empty in this option.

Example SQL Query:

SELECT
  comment AS entry,
  CAST(reviewDt AS TIMESTAMP) AS date,
  recordId AS id
FROM `project.dataset.table`
WHERE CAST(reviewDt AS TIMESTAMP) >= <dateLowerBoundTimestamp>
ORDER BY date DESC

Matching fields in Unwrap for this example

  • Entry Column: entry

  • Date Column: date

  • Unique ID Column: id

  • SQL Query: paste the query above

  • Table ID: leave empty

If your table does not have any date column, define a synthetic date column in the above SQL query, for example, replace CAST(reviewDt AS TIMESTAMP) AS date with CURRENT_TIMESTAMP() AS feedback_date in above, and then set the Date Column to feedback_date.

Optional: limit imports by date (for the SQL Query only)

You may add these placeholders in your WHERE clause. Unwrap replaces them with timestamps when the query runs:

  • <dateLowerBoundTimestamp> — rows on or after this time

  • <dateUpperBoundTimestamp> — rows on or before this time

Tips

  • Placeholders are optional. If you omit them, your query runs as written.

  • For DATE columns, cast before comparing, e.g. CAST(reviewDt AS TIMESTAMP) >= <dateLowerBoundTimestamp>.

  • Do not add LIMIT or OFFSET unless Unwrap support asks you to, as Unwrap handles pagination.

3.3 Validate and Submit

  1. Click Validate to test access and configuration.

  2. If validation succeeds, click Submit.

  3. The first import may take some time before data appears in Unwrap.

If validation fails, check if:

  • The service account has access (Steps 1–2).

  • Exactly one of Table ID or SQL Query is filled.

  • Column names match the table (Table ID mode) or your SELECT aliases (SQL Query mode).

  • Date Column exists on the table (Table ID mode) or is defined in your SELECT (SQL Query mode).

Else, please contact Unwrap Support.

Security Information

  • Our service account will only have access to the specific datasets, tables, or views you explicitly share

  • Access can be revoked at any time by removing our service account from the permissions list

  • All data access is logged in your Google Cloud audit logs

  • For questions about security, please contact contact@unwrap.ai

Need Help?

If you have any questions or encounter any issues while setting up access, please contact us (contact@unwrap.ai).