bigtable-jdbc
is a JDBC Driver for Google Bigtable.
You can create a JDBC connection easily for a variety of authentication types. For instance for an accessTokenProviderFQCN in connection URL:
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Main {
private static final String projectId = "test-project";
private static final String instanceId = "test-instance";
private static final String appProfileId = "test";
private static final String endpoint = "test-endpoint";
private static final String accessTokenProviderFQCN = "org.example.MyCustomImplementation";
public static void main(String[] args) {
try {
// load the class so that it registers itself
Class.forName("com.google.cloud.bigtable.jdbc.BigtableDriver");
String url = String.format(
"jdbc:bigtable:/projectId/%s/instances/%s?app_profile_id=%s?endpoint=%s&accessTokenProviderFQCN=%s",
projectId, instanceId, appProfileId, endpoint, accessTokenProviderFQCN);
Connection connection = DriverManager.getConnection(url);
// perform SQL against Bigtable now!
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
- Java 8 or higher
- Maven 3.2.5 or higher
- A Google Cloud project with the Bigtable API enabled
- A Bigtable instance and table
-
Clone the repository:
git clone https://github.com/GoogleCloudPlatform/java-bigtable-jdbc.git cd java-bigtable-jdbc
-
Build the project:
mvn clean package
-
Run the example:
Replace the placeholder values with your actual project ID, instance ID, table name, and row key.
mvn exec:java -Dexec.mainClass="com.google.cloud.bigtable.jdbc.example.JdbcExample" -Dexec.args="[PROJECT_ID] [INSTANCE_ID] [TABLE_NAME] [ROW_KEY]"