CData Python Connector for Google BigQuery

Build 24.0.9060

ProjectId

The ProjectId used to resolve unqualified tables and execute jobs.

Data Type

string

Default Value

""

Remarks

This property and BillingProjectId are used to determine billing for jobs and resolve unqualified table names.

Job Execution

The connector must create a job within Google BigQuery to execute certain kinds of queries. For example, complex SELECT statements, UPDATE and DELETE statements, and INSERT statements (when InsertMode is DML) are all executed using jobs. The project where a job executes determines how the job is billed.

The connector determines the billing project using these rules. Note that only the first two rules apply when QueryPassthrough is enabled. Either this property or BillingProjectId must be set to execute passthrough queries.

  1. The BillingProjectId is used if that property is not empty.
  2. Then this property is used.
  3. If both properties are empty, the project is determined from the catalog of the first table in the query. The job created for the following query executes in the psychic-valve-137816 project.

SELECT FirstName, LastName FROM `psychic-valve-137816`.`Northwind`.`customers`

Table Resolution

In addition to setting the billing project, the connector also uses this property to determine the default data project. The data project is used to resolve tables included in queries when they are not fully qualified:

/* Unqualified, resolved against connection properties */
SELECT FirstName, LastName FROM `Northwind`.`customers`

/* Qualified, project specified as catalog */
SELECT FirstName, LastName FROM `psychic-valve-137816`.`Northwind`.`customers`

Any unqualified table references in the query are resolved using the following rules. Note that only methods 1 and 2 are supported when QueryPassthrough is enabled. This means that any tables outside the default data project must be explicitly qualified.

  1. This property is used if it is not empty.
  2. Then the BillingProjectId property is used.
  3. If both properties are empty, the catalog from the first table in the query is used. In the following query the `Northwind`.`orders` table is treated as if it comes from the psychic-valve-137186 project.

SELECT ... FROM `psychic-valve-137816`.`Northwind`.`customers`
INNER JOIN `Northwind`.`orders`
ON ...

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9060