[bigquery-jdbc] Expose dry-run / query cost estimation API

Aperta
#14,264 0 commenti 1 reazione 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@logachev ci sta già lavorando.

Dal 10/9/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

Problem

BigQuery clients often need to estimate the amount of data a query will process before executing it, because BigQuery billing depends on bytes processed.

The BigQuery API supports this through dry runs and returns totalBytesProcessed. The Java BigQuery client also exposes this capability, including Connection.dryRun(String) / BigQueryDryRunResult.

However, google-cloud-bigquery-jdbc does not currently expose an equivalent public API through BigQueryConnection or BigQueryStatement.

This prevents JDBC-based database tools such as DataGrip from providing the same pre-execution cost information that the BigQuery Console provides.

Requested API

It would be useful to expose dry-run/query estimation as a BigQuery-specific JDBC extension, for example through an unwrapped BigQueryConnection or BigQueryStatement:

BigQueryStatement statement =
    jdbcStatement.unwrap(BigQueryStatement.class);

BigQueryDryRunResult result = statement.dryRun(sql);
long bytes = result.getTotalBytesProcessed();

The exact API shape is not important; the main requirement is to perform the dry run using the existing JDBC connection configuration and authentication.

Ideally it should preserve:

  • authentication/credentials
  • project
  • location
  • default dataset
  • session configuration
  • prepared-statement parameters, where applicable
Motivation

For database IDEs and other JDBC tools, this would allow:

This query will process approximately 1.8 TB.

to be shown before execution, optionally allowing clients to warn users about unexpectedly expensive queries.

MaximumBytesBilled is useful as a hard safety limit, but it does not expose the estimated number of bytes to the JDBC client before execution.

The underlying BigQuery APIs already provide dry-run estimation, so this request is specifically about making that capability accessible through the JDBC driver.

Lingua principale
Java
Stelle
2.1k
Fork
1.2k
Merge medio
2g 14h
PR unite (30g)
192

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di googleapis/google-cloud-java

Tutte le issue di googleapis/google-cloud-java

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.