Google BigQuery

Amperity Bridge for Google BigQuery is a first-class integration that enables bi-directional data access between Amperity and Google BigQuery without copying data or scheduling ETL workloads.

What is BigQuery Sharing?

BigQuery Sharing publishes and shares datasets between organizations. Create an exchange, and then invite organizations to publish or subscribe to data in the exchange.

Note

Review Connect Amperity Bridge to Google BigQuery for more information about prerequisites, requirements, and optional configurations for Google BigQuery. All configuration prerequisites must be completed before stepping through this workflow.

To add an inbound bridge

Step one.

On the Identity resolution page in Quick start, from the Add data source dropdown select Google BigQuery.

Add a data source.

This opens the Add bridge dialog box.

Add a bridge for a connection.

Add a name and description for the bridge or select an existing bridge, and then click Confirm.

Step two.

Add the share link that was copied from the Google BigQuery data exchange.

Amperity generates the subscriber link after the share link has been configured. The share link is a URL similar to:

https://console.cloud.google.com/bigquery/ \
analytics-hub/exchanges/projects/123456789012/ \
locations/<location>/dataExchanges/<exchange>/ \
listings/<listing>

Configure this identifier in Google BigQuery as the subscriber for the data listing.

Step three.

Use the Select tables dialog box to select any combination of schemas and tables to be connected to Amperity.

Select schemas and tables to be shared.

If you select a schema, all tables in that schema are connected. Any new tables added later need to manually added to the connection.

When finished, click Next. This opens the Domain table mapping dialog box.

Step four.

Map the tables connected from Google BigQuery to domain tables in Amperity.

Map connected tables to domain tables.

Tables connected with Amperity must have unique names among all domain tables. Primary keys are not assigned. Semantic tags are not applied.

Tip

Use a custom domain table to assign primary keys, apply semantic tags, and shape data within connected tables to the requirements of your workflows in Amperity.

When finished, click Save and sync. This will start a workflow that synchronizes data from Google BigQuery to Amperity and creates the mapped table names.

You can manually sync tables connected with Amperity using the Sync option from the Actions menu for the inbound bridge.

Data types

Most Google BigQuery data types are supported by Amperity Bridge.

Important

If an upstream data type changes, edit the bridge in Amperity, accept the changes, and then save and sync the bridge.

Note

BYTES and RANGE data types are unsupported.

The following table describes how Google BigQuery data types map to Amperity data types.

Google BigQuery data type

Amperity data type

ARRAY

An ordered list of zero or more elements of non-array values.

Each element must be a Google BigQuery type that maps to a supported Amperity type.

Array

An ordered list of zero or more elements of non-array values by field name and value.

Fields within an Array must contain values for data types supported by Amperity.

BIGINT

A numeric value and an alias for INT64.

Note

BIGINT, BYTEINT, INT, INTEGER, SMALLINT, and TINYINT data types are aliases for INT64 and represent values less than 64 bits.

Integer

A numeric value, such as the quantity of items purchased. For example:

  • 1

  • 12345

BIGNUMERIC

A decimal value with precision of 76.

Important

Amperity supports precision for BIGNUMERIC data types when they are less than or equal to 38. Precision that is greater than 38 is not supported.

Decimal

A fixed point number, such as for prices or message sizes. The number of characters in the decimal value is configurable. For example:

  • 1.50 (prices)

  • 1874.380 (message sizes)

  • 141.48042 (order subtotals)

BOOLEAN , BOOL

A value that can be TRUE, FALSE, or NULL.

Boolean

A value that can be TRUE, FALSE, or NULL.

BYTES

Variable-length binary data.

Warning

The Google BigQuery BYTES data type is unsupported. Exclude fields with BYTES data types from tables before sharing them with Amperity.

BYTEINT

A numeric value and an alias for INT64.

Note

BIGINT, BYTEINT, INT, INTEGER, SMALLINT, and TINYINT data types are aliases for INT64 and represent values less than 64 bits.

Integer

A numeric value, such as the quantity of items purchased. For example:

  • 1

  • 12345

DATE

A Gregorian calendar date, independent of time zone.

Date

An ISO-8601 compliant date value, such as a birthdate. For example:

  • 2021-11-04

DATETIME

A Gregorian date and time, as they might be displayed on a watch, independent of time zone.

Datetime

ISO-8601 compliant date and time values, such as a purchase or transaction, the time at which data was last updated, or a campaign launch date. For example:

  • Mon Nov 30 2020 16:00:00 GMT-0800 (Pacific Standard Time)

  • Sat Sep 02 2017 14:36:19 GMT-0700 (Pacific Daylight Time)

DECIMAL (p,s)

A decimal value with a precision of 38 digits.

Decimal

A fixed point number, such as for prices or message sizes. The number of characters in the decimal value is configurable. For example:

  • 1.50 (prices)

  • 1874.380 (message sizes)

  • 141.48042 (order subtotals)

FLOAT64

An approximate double precision numeric value.

Float

A floating point number. For example:

  • 3.14

  • 3.14159

GEOGRAPHY

A collection of points, linestrings, and polygons that represent a set or subset of the surface of the Earth.

String

A string of characters.

INT

A numeric value and an alias for INT64.

Note

BIGINT, BYTEINT, INT, INTEGER, SMALLINT, and TINYINT data types are aliases for INT64 and represent values less than 64 bits.

Integer

A numeric value, such as the quantity of items purchased. For example:

  • 1

  • 12345

INT64

A numeric value up to 64 bits.

Note

BIGINT, BYTEINT, INT, INTEGER, SMALLINT, and TINYINT data types are aliases for INT64 and represent values less than 64 bits.

Integer

A numeric value, such as the quantity of items purchased. For example:

  • 1

  • 12345

INTEGER

A numeric value and an alias for INT64.

Note

BIGINT, BYTEINT, INT, INTEGER, SMALLINT, and TINYINT data types are aliases for INT64 and represent values less than 64 bits.

Integer

A numeric value, such as the quantity of items purchased. For example:

  • 1

  • 12345

JSON

Represents JSON, a lightweight data-interchange format.

String

A string of characters.

NUMERIC (p,s)

A decimal value with a precision of up to 38 digits.

Decimal

A fixed point number, such as for prices or message sizes. The number of characters in the decimal value is configurable. For example:

  • 1.50 (prices)

  • 1874.380 (message sizes)

  • 141.48042 (order subtotals)

RANGE

A contiguous range between two dates, datetimes, or timestamps.

Warning

The Google BigQuery RANGE data type is unsupported. Exclude fields with RANGE data types from tables before sharing them with Amperity.

SMALLINT

A numeric value and an alias for INT64.

Note

BIGINT, BYTEINT, INT, INTEGER, SMALLINT, and TINYINT data types are aliases for INT64 and represent values less than 64 bits.

Integer

A numeric value, such as the quantity of items purchased. For example:

  • 1

  • 12345

STRING

Variable-length character data.

String

A sequence of characters, such as first and last names, email addresses, physical addresses, UUIDs and other IDs, phone numbers, zip codes, product names, and descriptions. May be empty. For example:

  • John

  • Smith

  • John Smith

  • johnsmith @ domain.com

  • 123 Main Street

  • 206-555-1111

  • 00002ac0-0915-3cb4-b7c7-5ee192b3bd49

  • ACME

  • pants

  • “A data source that pulls from an Amazon S3 bucket.”

STRUCT

A container of ordered fields. Fields within a STRUCT must contain values for data types supported by Amperity.

Struct

A container of ordered fields by name and type.

TIME

A time of day, as might be displayed on a clock, independent of a specific date and time zone.

String

A sequence of characters that represents the time of day.

TIMESTAMP

An absolute point in time, independent of any time zone or convention, such as daylight saving time (DST).

Datetime

ISO-8601 compliant date and time values, such as a purchase or transaction, the time at which data was last updated, or a campaign launch date. For example:

  • Mon Nov 30 2020 16:00:00 GMT-0800 (Pacific Standard Time)

  • Sat Sep 02 2017 14:36:19 GMT-0700 (Pacific Daylight Time)

TINYINT

A numeric value and an alias for INT64.

Note

BIGINT, BYTEINT, INT, INTEGER, SMALLINT, and TINYINT data types are aliases for INT64 and represent values with fewer than 64 bits.

Integer

A numeric value, such as the quantity of items purchased. For example:

  • 1

  • 12345