You can configure a Google BigQuery connection to use one of the following connection modes:
Simple mode
If you use simple mode, Google BigQuery Connector flattens each field within the Record data type field as a separate field in the field mapping.
Hybrid mode
If you use hybrid mode, Google BigQuery Connector displays all the top-level fields in the Google BigQuery table including Record data type fields. Google BigQuery Connector displays the top-level Record data type field as a single field of the String data type in the field mapping.
Complex mode
If you use complex mode, Google BigQuery displays all the columns in the Google BigQuery table as a single field of the String data type in the field mapping.
Connection mode example
Google BigQuery Connector reads and writes the Google BigQuery data based on the connection mode that you configure for the Google BigQuery connection.
You have a Customers table in Google BigQuery that contains primitive fields and the Address field of the Record data type. The Address field contains two primitive sub-fields, City and State, of the String data type.
The following image shows the schema of the Customers table in Google BigQuery:
The following table shows the Customers table data in Google BigQuery:
ID
Name
Address.City
Address.State
Mobile
Totalpayments
14
John
LOS ANGELES
CALIFORNIA
+1-9744884744
18433.90
+1-8267389993
29
Jane
BOSTON
MANHATTAN
+1-8789390309
28397.33
+1-9876553784
+1-8456437848
Simple mode
If you use simple connection mode, Google BigQuery Connector flattens each field within the Record data type field as a separate field in the Field Mapping tab.
The following table shows two separate fields, Address_City and Address_State, for the respective sub-fields within the Address Record field in the Customers table:
ID
Name
Address_City
Address_State
Mobile
Totalpayments
14
John
LOS ANGELES
CALIFORNIA
+1-9744884744
18433.90
14
John
LOS ANGELES
CALIFORNIA
+1-8267389993
18433.90
29
Jane
BOSTON
MANHATTAN
+1-8789390309
28397.33
29
Jane
BOSTON
MANHATTAN
+1-9876553784
28397.33
29
Jane
BOSTON
MANHATTAN
+1-8456437848
28397.33
The following image shows the fields in the Field Mapping tab of a synchronization task:
Hybrid mode
If you use hybrid connection mode, Google BigQuery Connector displays all the top-level fields in the Google BigQuery table including Record data type fields. Google BigQuery Connector displays the top-level Record data type field as a single field of the String data type in the Field Mapping tab.
The following image shows the Field Mapping tab of a synchronization task:
Complex mode
If you use complex connection mode, Google BigQuery Connector displays all the columns in the Google BigQuery table as a single field of the String data type in the Field Mapping tab.
The following image shows the STRING_DATA field in the Field Mapping tab of a synchronization task:
Rules and guidelines for Google BigQuery connection modes
Simple mode
Consider the following rules and guidelines when you configure a Google BigQuery connection to use simple connection mode:
•You cannot create a Google BigQuery target table that contains repeated columns using the Create Target option.
•If the Google BigQuery source table contains repeated columns, you cannot configure data filters for these columns.
•If the Google BigQuery table contains more than one repeated column, you cannot preview data.
•If the Google BigQuery target table contains repeated columns, you cannot configure update and delete operations for these columns.
•You cannot configure upsert operations for columns of the Record data type and repeated columns.
•When you read data from a Google BigQuery source, you must not map more than one repeated column in a single mapping. You must create multiple mappings for each repeated column.
Hybrid mode
Consider the following rules and guidelines when you configure a Google BigQuery connection to use hybrid connection mode:
•You cannot preview data.
•You cannot create a Google BigQuery target table using the Create Target option.
•If the Google BigQuery source table contains columns of the Record data type and repeated columns, you cannot configure data filters for these columns.
•You cannot configure update, upsert, and delete operations for columns of the Record data type and repeated columns.
•You must select JSON (Newline Delimited) format as the data format of the staging file under the advanced target properties. You can use CSV format as the data format of the staging file unless the Google BigQuery table contains columns of the Record data type or repeated columns.
•The following CSV formatting options in the advanced target properties are not applicable:
- Allow Quoted Newlines
- Field Delimiter
- Allow Jagged Rows
Complex mode
Consider the following rules and guidelines when you configure a Google BigQuery connection to use complex connection mode:
•You cannot preview data.
•You cannot create a Google BigQuery target table using the Create Target option.
•When you configure a Google BigQuery source connection to use complex connection mode, you cannot configure data filters for the source.
•You cannot configure update, upsert, and delete operations.
•You must select JSON (Newline Delimited) format as the data format of the staging file under the advanced target properties.
•You cannot use CSV format as the data format of the staging file. The following CSV formatting options in the advanced target properties are not applicable:
- Allow Quoted Newlines
- Field Delimiter
- Allow Jagged Rows
•You cannot use key range partitioning for Google BigQuery sources.