Modern JDBC driver for Google BigQuery, optimized for database IDEs with fast metadata support
BigQuery JDBC Driver is a modern JDBC driver for Google BigQuery, optimized for development tools and database IDEs. Built from scratch for Java 21+ with JDBC 4.3 compliance and fast, high-quality metadata support.
Addresses critical limitations in existing BigQuery JDBC drivers for IntelliJ IDEA and other database IDEs, with a focus on fast metadata operations and schema introspection. Features parallel dataset loading with intelligent caching, providing 30x faster schema introspection for large projects (2-3 seconds vs 90+ seconds). Fixes critical issues including unreliable schema introspection (DBE-18711, DBE-12954), performance problems with large projects (DBE-22088), unsafe STRUCT/ARRAY handling (DBE-12749), and authentication token refresh (DBE-19753).
Includes comprehensive authentication methods (ADC, Service Account, OAuth 2.0, Workforce Identity Federation, and Workload Identity Federation), BigQuery sessions for transactions and temporary tables, and complete type support including complex types. Supports Simba BigQuery JDBC driver URL format for easy migration. Extensive testing with 904 unit tests plus emulator-based and real BigQuery integration test suites.
Tech: Java, Maven, BigQuery, JDBC, TestContainers, Docker
Features
- Fast metadata operations with parallel dataset loading and caching
- 30x faster schema introspection for large projects (2-3 seconds vs 90+ seconds)
- Fixes critical JetBrains driver issues (DBE-18711, DBE-12954, DBE-22088, DBE-12749, DBE-19753)
- Modern Java 21+ with records, sealed classes, virtual threads, and async operations
- Comprehensive authentication: ADC, Service Account, OAuth 2.0, Workforce and Workload Identity Federation
- BigQuery sessions with transactions, temp tables, and multi-statement scripts
- Complete type support including ARRAY, STRUCT, JSON, and GEOGRAPHY; native types via nativeComplexTypes=true
- Simba BigQuery JDBC driver URL format compatibility for zero-change migration
- Routine (UDF) metadata via getProcedures() and getProcedureColumns()
- BigQuery Storage Read API for high-throughput large result sets
- Extensive testing with 904 unit tests plus emulator and real BigQuery integration suites
Links: GitHub: Two-Bear-Capital/tbc-bq-jdbc
More from the portfolio
This project is part of tvsguide.io, the personal portfolio of Tim Veil — software engineer and CIO at Two Bear Capital, previously at StarTree, Cockroach Labs, and Hortonworks. The full collection covers distributed systems, data infrastructure, JDBC drivers, AI services, build pipelines, real-time analytics, and a couple of personal apps. Each project ships with source code, tech notes, and links to live deployments where applicable.
Browse the project index, read about Tim's background, follow the blog, or return to the homepage. Source code lives on GitHub; professional history is on LinkedIn.