Skip to content

Add default_query_job_config property and property setter to BQ client #1512

@chelsea-lin

Description

@chelsea-lin

Is your feature request related to a problem? Please describe.
We would like to have one BQ client to start a session and run queries in the session. Following BigQuery documents, we can start a session and get the session id through:

bqclient = bigquery.Client()
job_config = bigquery.QueryJobConfig(create_session=True)
query_job = self.bqclient.query("SELECT 1", job_config=job_config)
session_id = query_job.session_info.session_id

Then, we can set the _default_query_job_config with the session_id. Here, we want to reuse the bqclient object to avoid additional connection time(e.g. authentication etc).

bqclient._default_query_job_config = bigquery.QueryJobConfig(
      connection_properties=[
          bigquery.ConnectionProperty("session_id", session_id)
      ]
)

However, it is not in the best practice to call the private properties of BQ client.

Describe the solution you'd like
Can we expose the default_query_job_config property public and its setter in BQ client.

Additional context
Internal bug can be referred here

Metadata

Metadata

Assignees

Labels

api: bigqueryIssues related to the googleapis/python-bigquery API.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions