[bigquery-jdbc] Expose dry-run / query cost estimation API
Maintainer antworten meist innerhalb von 1 Tag
@logachev arbeitet bereits daran.
Seit 10.9.2026.
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
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.
- Vorherrschende Sprache
- Java
- Sterne
- 2.1k
- Forks
- 1.2k
- Ø Merge
- 2 T. 14 Std.
- Gemergte PRs (30 T.)
- 192
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus googleapis/google-cloud-java
-
[java-core] Timestamp.of(java.sql.Timestamp) is one second late for a time less than a second before the epochEvtl. vergeben @Vcode2407 hat das vor 4 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
googleapis/google-cloud-java#14636 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[java-firestore] UserDataConverter encodes a pre-epoch Date with negative nanos, so the write is refusedEvtl. vergeben @wu-hui hat das vor 23 Tagen übernommen. Offenpriority: p2 type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
googleapis/google-cloud-java#14635 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
[java-firestore] UserDataConverter throws IndexOutOfBoundsException on an empty __binary__ valueEvtl. vergeben @wu-hui hat das vor 23 Tagen übernommen. Offenpriority: p2 type: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
googleapis/google-cloud-java#14634 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
[java-firestore] CustomClassMapper.convertBigDecimal calls .abs() on Double, unintentionally flipping negative values to positiveEvtl. wieder frei @wu-hui hat das vor 45 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
googleapis/google-cloud-java#14533 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Github CI failing when trying to install xmllintEvtl. vergeben @blakeli0 hat das vor 81 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
googleapis/google-cloud-java#14132 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in googleapis/google-cloud-java
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
finos/fluxnova-bpm-platform#387 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
-
Schwierigkeit 2/5 Unter einer Stunde Anfängerfreundlichkeit 84/100
cpp-best-practices/project_validator#251 ·
Maintainer antworten meist innerhalb von 1 Tag
-
backend enhancement
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 70/100
damodharg6/payledger#16 ·
-
[Bug]: An initiative list with no current entry logs an error on every changeEvtl. vergeben @dwizard0 hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag