This documentation page assumes that you already have a SeekTable account.
Create your free account by signing up.
BigQuery BI Tool for pivot tables, charts, tabular reports
SeekTable is a self-service BigQuery BI tool that allows users to create pivot tables,
charts, and flat table reports directly from BigQuery databases:
Live BigQuery connection: report queries execute in real-time, meaning your operational reports always up-to-date (no need in refreshes).
No ETL / zero data extraction: analyze massive datasets directly in your data warehouse, no data imports required.
Designed for business users: Excel-like web interface enables non-IT users to perform fast data analysis and data visualization without writing SQL or exporting sensitive data.
Governed data access: safely share common reports and data cubes with RLS. End-users queries are limited to configured data models (no direct SQL access to BigQuery).
On-premise reporting tool: self-hosted SeekTable meets strict corporate compliance and data governance requirements.
It supports fully isolated deployment environments to deliver real-time insights without your data ever leaving your internal network.
Embedded BI: seamlessly integrate SeekTable published reports and dashboards directly into your web app.
Or embed the entire SeekTable app view to let them build their own reports directly inside your app.
The name of your BigQuery project. This project is the default project that the Simba ODBC Driver for Google BigQuery queries against.
RefreshToken
The refresh token that you obtain from Google for authorizing access to BigQuery.
Section below explains how to generate the token.
ClientId
OAuth Client ID used for refresh token creation (may be omitted if refresh token was generated with ODBC driver's get_refresh_token.py script).
ClientSecret
Corresponding OAuth Client secret (may be omitted if refresh token was generated with ODBC driver's get_refresh_token.py script).
Configure other required settings as described in SQL-compatible data source.
As a minimum you need to specify Select Query (which determine's the dataset) and keep Infer dimensions and measures by dataset checked.
How to get a refresh token
If you don't have a refresh token provided by your BigQuery administrator, you can get it in one of the following ways:
Click "Create Credentials" - "OAuth Client ID"
Fill the form: Application Type = Web Application Name = SeekTable Client Authorized redirect URIs: click "ADD URI" and enter:
https://developers.google.com/oauthplayground
In "Oauth client created" dialog you get "Client ID" and "Client secret" values
Click "Gear" icon (top-right corner), click on "Use your own OAuth credentials" and
enter your "Client ID" and "Client secret" values.
In the left panel ("Select & authorize APIs" step) enter
https://www.googleapis.com/auth/bigquery
and click the "Authorize APIs" button.
You should see "Refresh token" filled. Use this value in the connection string for SeekTable's BigQuery connector.
Don't forget to specify corresponding ClientId and ClientSecret connection string options.
Alternatively, you can
(section "Configuring Authentication on a Non-Windows Machine")
and generate a refresh token using Simba-provided python script get_refresh_token.py.
Inferring schema for tables with ARRAY columns
If your table has an ARRAY-type columns and you got an error like Error converting invalid input with source encoding UTF-8 using ICU:
exclude these columns from the Select Query, for example:
SELECT * except(array_col1, array_col2) FROM some_table
and save the cube form.
Then go to the cube configuration form; you should see dimensions & measures that are populated automatically.
Change the query to:
SELECT * FROM some_table
do NOT check Infer dimensions and measures by dataset. Save the form.
Date-part dimensions calculated with SQL expressions
To define date-part dimensions (date's "year", "month", "day" etc) you may add dimensions defined with an appropriate SQL expression:
add new dimension with Type=Field
fill Name with some unique value: say, "date_column_year"
For month: EXTRACT(MONTH FROM date_column) + Format={0:MMM} (Jan, Feb etc) or {0:MMMM} (January, February etc)
For day: EXTRACT(DAY FROM date_column)
For day-of-week: EXTRACT(DAYOFWEEK FROM date_column)-1 + Format={0:ddd} (0=Sun, 1=Mon, 2=Tue etc) or {0:dddd} (0=Sunday, 1=Monday, 2=Tuesday etc)
For quarter: EXTRACT(QUARTER FROM date_column)
For week-of-year: EXTRACT(ISOWEEK FROM date_column)
Looking for a web pivot table component? Try
PivotData microservice (SeekTable's reporting engine) which can be seamlessly integrated into any web application
for pivot tables generation by BigQuery data.