Menggunakan driver JDBC untuk BigQuery
Driver Java Database Connectivity (JDBC) untuk BigQuery menghubungkan aplikasi Java Anda ke BigQuery, sehingga Anda dapat menggunakan fitur BigQuery dengan alat dan infrastruktur pilihan Anda. Driver ini dirancang khusus untuk BigQuery dan tidak dapat digunakan dengan produk atau layanan lainnya. Anda tidak memerlukan lisensi tambahan untuk menggunakan driver ini.
Sebelum memulai
- Pastikan Anda sudah memahami driver JDBC dan
paket
java.sql. - Pastikan sistem Anda dikonfigurasi dengan Java Runtime Environment (JRE) 8.0 atau yang lebih baru.
Mengonfigurasi driver
Untuk mengonfigurasi driver JDBC untuk BigQuery, Anda harus menginstal driver, melakukan autentikasi ke BigQuery, dan membuat koneksi.
Menginstal driver
- Download salah satu paket JDBC berikut:
- Uber JAR. Satu file JAR dengan semua dependensi disertakan.
- JAR tipis dengan dependensi. File zip yang menyertakan file JAR tipis dengan semua dependensi.
- JAR Uber yang di-shade. Satu file JAR dengan semua dependensi disertakan dan di-shade.
- Tambahkan file JAR yang didownload ke classpath Anda agar compiler dan runtime Java dapat menemukan class JDBC yang diperlukan.
Mengautentikasi ke BigQuery
Driver JDBC untuk BigQuery menyediakan beberapa opsi autentikasi:
- Menggunakan akun layanan
- Menggunakan akun pengguna Google
- Menggunakan token akses dan refresh yang dibuat sebelumnya
- Menggunakan Kredensial Default Aplikasi
- Menggunakan metode eksternal
Melakukan autentikasi dengan akun layanan
Saat Anda membuat koneksi dengan driver JDBC untuk BigQuery, lakukan hal berikut:
- Tetapkan properti koneksi
OAuthTypeke0. - Tetapkan properti koneksi
ProjectIdke nama project BigQuery Anda. - Lakukan salah satu hal berikut:
- Jika Anda menggunakan email dan kunci akun layanan, tetapkan properti koneksi
OAuthServiceAcctEmailke alamat email akun layanan Google Anda, dan tetapkan properti koneksiOAuthPvtKeyke objek JSON kunci akun layanan. UntukOAuthPvtKey, Anda dapat menggunakan objek JSON kunci atau jalur lengkap file kunci. - Jika Anda menggunakan file kunci akun layanan, tetapkan properti koneksi
OAuthPvtKeyPathke jalur lengkap file kunci akun layanan.
- Jika Anda menggunakan email dan kunci akun layanan, tetapkan properti koneksi
Dua contoh berikut menggunakan autentikasi akun layanan:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=0; OAuthServiceAcctEmail=bq-jdbc-sa@mytestproject.iam.gserviceaccount.com; OAuthPvtKey=my-sa-key
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=0; OAuthPvtKeyPath=path/to/file/secret.json;
Melakukan autentikasi dengan akun pengguna Google
Saat Anda membuat koneksi dengan driver JDBC untuk BigQuery, lakukan hal berikut:
- Tetapkan properti koneksi
OAuthTypeke1. - Tetapkan properti koneksi
ProjectIdke nama project BigQuery Anda. - Tetapkan properti koneksi
OAuthClientIdke client ID Anda, dan tetapkan properti koneksiOAuthClientSecretke rahasia klien Anda.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API dan Mengelola Klien OAuth.
Contoh berikut menggunakan autentikasi akun pengguna Google:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=1; OAuthClientId=123456789012-abcdefghijklmnopqrstuvwxyz12345.apps.googleusercontent.com; OAuthClientSecret=_aB-C1D_E2fGh3Ij4kL5m6No7p8QR9sT0uV;
Mengautentikasi dengan token akses atau refresh yang dibuat sebelumnya
Saat Anda membuat koneksi dengan driver JDBC untuk BigQuery, lakukan hal berikut:
- Tetapkan properti koneksi
OAuthTypeke2. - Tetapkan properti koneksi
ProjectIdke nama project BigQuery Anda. - Lakukan salah satu hal berikut:
- Jika Anda menggunakan token akses yang telah dibuat sebelumnya, tetapkan properti koneksi
OAuthAccessTokenke token akses Anda. - Jika Anda menggunakan token refresh yang telah dibuat sebelumnya, tetapkan properti koneksi
OAuthRefreshTokenke token refresh Anda, tetapkan properti koneksiOAuthClientIdke client ID Anda, dan tetapkan properti koneksiOAuthClientSecretke rahasia klien Anda.
- Jika Anda menggunakan token akses yang telah dibuat sebelumnya, tetapkan properti koneksi
Untuk mengetahui informasi selengkapnya, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API.
Contoh berikut menggunakan autentikasi token akses yang dibuat sebelumnya:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=2; OAuthAccessToken=ya29.a0AfH6SMCiH1L-x_yZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_;
Contoh berikut menggunakan autentikasi token refresh yang dibuat sebelumnya:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=2; OAuthClientId=123456789012-abcdefghijklmnopqrstuvwxyz12345.apps.googleusercontent.com; OAuthClientSecret=_aB-C1D_E2fGh3Ij4kL5m6No7p8QR9sT0uV; OAuthRefreshToken=1/fFAGRNJru1FTz70BzhT3Zg;
Melakukan autentikasi dengan Kredensial Default Aplikasi
Kredensial Default Aplikasi (ADC) adalah strategi yang digunakan oleh library autentikasi untuk menemukan kredensial secara otomatis berdasarkan lingkungan aplikasi.
Saat Anda membuat koneksi dengan driver JDBC untuk BigQuery, lakukan hal berikut:
- Tetapkan properti koneksi
OAuthTypeke3. - Tetapkan properti koneksi
ProjectIdke nama project BigQuery Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan Kredensial Default Aplikasi.
Contoh berikut menggunakan autentikasi ADC:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=3;
Melakukan autentikasi dengan metode eksternal
Anda dapat melakukan autentikasi dengan metode eksternal seperti Workforce Identity Federation atau Workload Identity Federation.
Saat Anda membuat koneksi dengan driver JDBC untuk BigQuery, lakukan hal berikut:
- Tetapkan properti koneksi
OAuthTypeke4. - Tetapkan properti koneksi
ProjectIdke nama project BigQuery Anda. - Lakukan salah satu hal berikut:
- Tetapkan properti koneksi
OAuthPvtKeyatau properti koneksiOAuthPvtKeyPathke jalur lengkap file konfigurasi. UntukOAuthPvtKey, Anda dapat menggunakan objek JSON kunci atau jalur lengkap file kunci. - Tetapkan properti koneksi
OAuthPvtKeyke objek konfigurasi akun eksternal mentah. - Tetapkan properti koneksi
BYOIDberikut, yang dijelaskan di bagian properti koneksi:BYOID_AudienceUriBYOID_CredentialSourceBYOID_PoolUserProjectBYOID_SA_Impersonation_UriBYOID_SubjectTokenTypeBYOID_TokenUri
- Tetapkan properti koneksi
Contoh berikut menggunakan metode autentikasi eksternal:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=4; OAuthPvtKeyPath=path/to/file/secret.json;
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=4; OAuthPvtKey=External_account_configuration_object;
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; ProjectId=MyTestProject;OAuthType=4; BYOID_AudienceUri=//iam.googleapis.com/projects/my-project/locations/US-EAST1/workloadIdentityPools/my-pool-/providers/my-provider; BYOID_SubjectTokenType=urn:ietf:params:oauth:tokentype:id_token; BYOID_CredentialSource={\"file\":\"/path/to/file\"}; BYOID_SA_Impersonation_Uri=my-sa; BYOID_TokenUri=https://sts.googleapis.com/v1/token;"
Berikut adalah contoh file konfigurasi:
{ "type": "external_account", "audience": "//iam.googleapis.com/locations/global/workforcePools/my_pool_name/providers/my_provider_name", "subject_token_type": "urn:ietf:params:oauth:token-type:id_token", "token_url": "https://sts.googleapis.com/v1/token", "credential_source": { "file": "/path/to/workforce/tokrn.txt" }, "workforce_pool_user_project": "my_project", "token_info_url": "https://sts.googleapis.com/v1/introspect" }
Membuat koneksi
Untuk membuat koneksi dengan driver JDBC untuk BigQuery, lakukan hal berikut:
Tambahkan dependensi
google-cloud-bigquery-jdbcke file build Maven POM/Gradle Anda:<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-bigquery-jdbc</artifactId> <version>0.0.1</version> <scope>system</scope> <systemPath>path/to/file/google-jdbc-jar-with-dependencies.jar</systemPath> </dependency>
Jika Anda menggunakan project Gradle, tambahkan kode berikut ke file build juga:
dependencies { // ... other dependencies implementation files('path/to/file/google-jdbc-jar-with-dependencies.jar') }
Identifikasi string koneksi Anda untuk driver JDBC. String ini mencakup semua informasi penting yang diperlukan untuk membuat koneksi antara aplikasi Java Anda dan database tertentu. String koneksi driver JDBC untuk BigQuery memiliki format berikut:
jdbc:bigquery://HOST:PORT;ProjectId=PROJECT_ID;OAuthType=AUTH_TYPE;PROPERTIES
Ganti kode berikut:
HOST: alamat IP atau DNS server.PORT: nomor port TCP.PROJECT_ID: ID project BigQuery Anda.AUTH_TYPE: angka yang menentukan jenis autentikasi yang Anda gunakan. Salah satu dari berikut ini:0: Autentikasi akun layanan Google1: Autentikasi akun pengguna Google2: Autentikasi token akses atau token refresh yang dibuat sebelumnya3: Autentikasi Kredensial Default Aplikasi4: Metode autentikasi eksternal, seperti Workforce Identity Federation atau Workload Identity Federation
PROPERTIES: properti koneksi tambahan untuk driver JDBC. Properti harus dicantumkan dalam formatproperty_1=value_1; property_2=value_2;.... Nama properti tidak peka huruf besar/kecil. Untuk mengetahui daftar lengkap properti koneksi, lihat Properti koneksi.
Hubungkan ke driver dengan class
DriverManageratauDataSource.Hubungkan ke class
DriverManager:import java.sql.Connection; import java.sql.DriverManager; private static Connection getJdbcConnectionDM(){ Connection connection = DriverManager.getConnection(CONNECTION_STRING); return connection; }
Ganti
CONNECTION_STRINGdengan string koneksi dari langkah sebelumnya.Hubungkan ke class
DataSource:import com.google.cloud.bigquery.jdbc.DataSource; import java.sql.Connection; import java.sql.SQLException; private static public Connection getJdbcConnectionDS() throws SQLException { Connection connection = null; DataSource dataSource = new com.google.cloud.bigquery.jdbc.DataSource(); dataSource.setURL(CONNECTION_STRING); connection = dataSource.getConnection(); return connection; }
Ganti
CONNECTION_STRINGdengan string koneksi dari langkah sebelumnya.Class
DataSourcejuga memiliki metode penyetel, yang dapat Anda gunakan untuk menyetel properti koneksi, bukan menyertakan setiap properti dalam string koneksi. Berikut adalah contohnya:private static Connection getConnection() throws SQLException { DataSource ds = new DataSource(); ds.setURL(CONNECTION_STRING); ds.setAuthType(3); // Application Default Credentials ds.setProjectId("MyTestProject"); ds.setEnableHighThroughputAPI(true); ds.setLogLevel("6"); ds.setUseQueryCache(false); return ds.getConnection(); }
Menjelajahi fitur pengemudi
Setelah terhubung ke driver JDBC untuk BigQuery, Anda dapat mempelajari fiturnya.
Konektor SQL
Konektor SQL memungkinkan Anda menjalankan kueri SQL dengan BigQuery. Gunakan
properti koneksi QueryDialect untuk menentukan dialek
SQL yang ingin Anda gunakan.
Pemetaan jenis data
Driver JDBC untuk BigQuery mendukung pemetaan jenis data berikut:
| Jenis BigQuery | Jenis SQL | Jenis Java |
|---|---|---|
ARRAY |
ARRAY |
Array |
BIGNUMERIC |
NUMERIC |
BigDecimal |
BOOL |
BOOLEAN |
Boolean |
BYTES |
VARBINARY |
byte[] |
DATE |
DATE |
Date |
DATETIME |
OTHER |
String |
FLOAT64 |
DOUBLE |
Double |
GEOGRAPHY |
OTHER |
String |
INT64 |
BIGINT |
Long |
INTERVAL |
OTHER |
String |
JSON |
OTHER |
String |
NUMERIC |
NUMERIC |
BigDecimal |
STRING |
NVARCHAR |
String |
STRUCT |
STRUCT |
Struct |
TIME |
TIME |
Time |
TIMESTAMP |
TIMESTAMP |
Timestamp |
Kumpulan data bertingkat dan berulang
Driver JDBC untuk BigQuery mendukung rekaman bertingkat dan berulang, dengan driver menampilkan jenis dasar sebagai objek struct atau representasi string dari objek JSON.
Berikut adalah contoh kueri data struct dari rekaman dasar:
ResultSet resultSet = statement.executeQuery("SELECT STRUCT(\"Adam\" as name, 5 as age)"); resultSet.next(); Struct obj = (Struct) resultSet.getObject(1); System.out.println(obj.toString());
Hasilnya adalah sebagai berikut:
{
"v": {
"f": [
{
"v": "Adam"
},
{
"v": "5"
}
]
}
}Berikut adalah contoh kueri subkomponen objek struct:
ResultSet resultSet = statement.executeQuery("SELECT STRUCT(\"Adam\" as name, 5 as age)"); resultSet.next(); Struct structObject = (Struct) resultSet.getObject(1); Object[] structComponents = structObject.getAttributes(); for (Object component : structComponents){ System.out.println(component.toString()); }
Berikut adalah contoh kueri array standar data berulang:
// Execute Query ResultSet resultSet = statement.executeQuery("SELECT [1,2,3]"); resultSet.next(); Object[] arrayObject = (Object[]) resultSet.getArray(1).getArray(); // Verify Result int count =0; for (; count < arrayObject.length; count++) { System.out.println(arrayObject[count]); }
Berikut adalah contoh kueri array struct data berulang:
// Execute Query ResultSet resultSet = statement.executeQuery("SELECT " + "[STRUCT(\"Adam\" as name, 12 as age), " + "STRUCT(\"Lily\" as name, 17 as age)]"); Struct[] arrayObject = (Struct[]) resultSet.getArray(1).getArray(); // Verify Result for (int count =0; count < arrayObject.length; count++) { System.out.println(arrayObject[count]); }
Kumpulan hasil besar
Untuk mengambil set hasil yang besar saat Anda menggunakan driver JDBC untuk BigQuery, lakukan hal berikut:
- Jika properti koneksi
QueryDialectAnda ditetapkan keSQL, tentukan set data dan tabel untuk menyimpan hasil dengan properti koneksiLargeResultDatasetdanLargeResultTable. - Jika properti koneksi
QueryDialectAnda ditetapkan keBIG_QUERY, tetapkan properti koneksiAllowLargeResultskeTRUE, dan tentukan set data dan tabel untuk menyimpan hasil dengan properti koneksiLargeResultDatasetdanLargeResultTable.
Dalam kedua kasus tersebut, Anda dapat menggunakan properti koneksi LargeResultsDatasetExpirationTime untuk menentukan durasi masa aktif set data tujuan.
Jika Anda tidak menentukan nilai untuk properti koneksi LargeResultDataset dan LargeResultTable, driver JDBC untuk BigQuery akan membuat set data tersembunyi bernama _google_jdbc dan tabel sementara di dalamnya.
Resource ini akan otomatis dihapus setelah 24 jam.
Semua kuota dan batas BigQuery tetap berlaku.
Parameter posisi
Parameter posisi adalah placeholder dalam pernyataan SQL yang merepresentasikan
nilai yang akan diberikan selama eksekusi kueri. Driver JDBC untuk BigQuery mendukung parameter posisi dengan simbol tanda tanya (?). Berikut adalah contoh kueri yang menggunakan parameter posisi:
PreparedStatement preparedStatement = connection.prepareStatement( "SELECT * FROM MyTestTable where testColumn = ?"); preparedStatement.setString(1, "string2"); ResultSet resultSet = statement.executeQuery(selectQuery);
SELECT kueri
Anda dapat menggunakan driver JDBC untuk BigQuery guna menjalankan SELECT
kueri melalui BigQuery API atau BigQuery Storage Read API.
Jika Anda menggunakan BigQuery API, tetapkan properti koneksi JobCreationMode untuk menentukan apakah kueri berjalan dengan atau tanpa membuat tugas.
Jika Anda menggunakan Storage Read API, gunakan properti koneksi EnableHighThroughputAPI untuk mengaktifkan API dan memverifikasi bahwa kondisi berikut terpenuhi:
- Skema tidak menggunakan jenis
INTERVAL. - Jumlah total baris kurang dari nilai properti koneksi
HighThroughputMinTableSize. - Rasio baris-ke-ukuran-halaman kurang dari nilai properti koneksi
HighThroughputActivationRatio.
Penyisipan massal
Untuk melakukan operasi penyisipan massal dengan driver JDBC untuk
BigQuery, gunakan metode executeBatch.
Berikut adalah contoh operasi tulis:
Connection conn = DriverManager.getConnection(connectionUrl); PreparedStatement statement = null; Statement st = conn.createStatement(); final String insertQuery = String.format( "INSERT INTO `%s.%s.%s` " + " (StringField, IntegerField, BooleanField) VALUES(?, ?, ?);", DEFAULT_CATALOG, DATASET, TABLE_NAME); statement = conn.prepareStatement(insertQuery1); for (int i=0; i<2000; ++i) { statement.setString(1, i+"StringField"); statement.setInt(2, i); statement.setBoolean(3, true); statement.addBatch(); } statement.executeBatch();
Logging
Driver JDBC untuk BigQuery mendukung tindakan logging di driver melalui Java Util Logging. Pencatatan log dapat memengaruhi performa, jadi aktifkan hanya untuk merekam masalah, dan nonaktifkan setelah Anda selesai.
Untuk mengonfigurasi logging, lakukan hal berikut:
Tetapkan properti
LogLevelsesuai dengan tabel berikut:LogLevelnilaiLogLevelDeskripsi 0OFFTidak ada pesan yang dicatat. 1SEVEREKegagalan atau error serius yang memengaruhi fungsi aplikasi. 2WARNINGPotensi masalah atau situasi yang mungkin memerlukan perhatian. 3INFOPesan informasi tentang peristiwa dan progres normal. 4CONFIGPesan terkait informasi konfigurasi statis. 5FINEPesan pelacakan umum. 6FINERPesan pelacakan mendetail. 7FINESTPesan pelacakan yang sangat mendetail, berguna untuk proses debug yang ekstensif. 8ALLSemua pesan dicatat. Tetapkan properti
LogPathke jalur lengkap folder tempat Anda ingin menyimpan file log.
Atau, Anda dapat mengonfigurasi logging dengan variabel lingkungan BIGQUERY_JDBC_LOG_LEVEL dan BIGQUERY_JDBC_LOG_PATH.
Properti koneksi
Di driver JDBC, properti koneksi adalah parameter konfigurasi yang dapat Anda sertakan dalam string koneksi atau diteruskan melalui metode setter saat Anda membuat koneksi ke database. Properti koneksi berikut didukung oleh driver JDBC untuk BigQuery.
AdditionalProjects
Properti koneksi ini memungkinkan kueri dan operasi metadata mengakses set data dalam project tertentu, selain project utama yang ditentukan dalam string koneksi.
- Nilai default: T/A
- Jenis data: String (string ID project yang dipisahkan koma)
- Wajib: Tidak
AllowLargeResults
Properti koneksi ini menentukan apakah driver memproses hasil kueri
yang lebih besar dari 128 MB saat properti koneksi QueryDialect
disetel ke BIG_QUERY. Jika properti koneksi QueryDialect ditetapkan ke SQL,
properti koneksi AllowLargeResults ditetapkan ke TRUE secara default. Untuk
mengetahui informasi selengkapnya, lihat Kumpulan hasil besar.
- Nilai default:
TRUE - Jenis data: Boolean
- Wajib: Tidak
BYOID_AudienceUri
Properti koneksi ini menentukan properti audiens dalam file konfigurasi akun eksternal. Properti audiens berisi nama resource untuk workload identity pool atau workforce pool dan ID penyedia di pool tersebut.
- Nilai default: T/A
- Jenis data: String
- Wajib: Hanya jika
OAuthType=4
BYOID_CredentialSource
Properti koneksi ini menetapkan informasi pengambilan token dan informasi lingkungan.
- Nilai default: T/A
- Jenis data: String
- Wajib: Hanya jika
OAuthType=4
BYOID_PoolUserProject
Properti koneksi ini menetapkan project pengguna saat kumpulan tenaga kerja sedang
digunakan. Project harus memiliki izin IAM serviceusage.services.use.
- Nilai default: T/A
- Jenis data: String
- Wajib: Hanya jika
OAuthType=4dan menggunakan kumpulan tenaga kerja
BYOID_SA_Impersonation_Uri
Properti koneksi ini menetapkan URL untuk peniruan akun layanan saat kumpulan identitas beban kerja sedang digunakan dan API belum diintegrasikan dengan UberMint.
- Nilai default: T/A
- Jenis data: String
- Wajib: Hanya jika
OAuthType=4dan menggunakan workload identity pool dengan peniruan identitas akun layanan
BYOID_SubjectTokenType
Properti koneksi ini menetapkan token STS berdasarkan spesifikasi pertukaran token. Nilainya harus berupa salah satu dari berikut:
Urn:ietf:params:oauth:token-type:jwtUrn:ietf:params:oauth:token-type:id_tokenUrn:ietf:params:oauth:token-type:saml2urn:ietf:params:aws:token-type:aws4_request- Nilai default:
urn:ietf:params:oauth:tokentype:id_token - Jenis data: String
- Wajib: Hanya jika
OAuthType=4
BYOID_TokenUri
Properti koneksi ini menetapkan endpoint pertukaran token STS.
- Nilai default:
https://sts.googleapis.com/v1/token - Jenis data: String
- Wajib: Tidak
ConnectionPoolSize
Properti koneksi ini menetapkan ukuran kumpulan koneksi jika penggabungan koneksi diaktifkan.
- Nilai default:
10 - Jenis data: Panjang
- Wajib: Tidak
DefaultDataset
Properti koneksi ini menentukan set data yang digunakan saat Anda menjalankan kueri
tanpa menentukan set data secara eksplisit. Anda dapat menggunakan format
DATASET_ID atau
PROJECT_ID.DATASET_ID.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
EnableHighThroughputAPI
Properti koneksi ini menentukan apakah Storage Read API dapat digunakan. Properti koneksi HighThroughputActivationRatio dan HighThroughputMinTableSize juga harus dipenuhi untuk menggunakan Storage Read API.
- Nilai default:
FALSE - Jenis data: Boolean
- Wajib: Tidak
EnableSession
Properti koneksi ini menentukan apakah koneksi memulai sesi. Saat digunakan, ID sesi akan diteruskan ke semua kueri berikutnya.
- Nilai default:
FALSE - Jenis data: Boolean
- Wajib: Tidak
EnableWriteAPI
Properti koneksi ini menentukan apakah Storage Write API dapat digunakan. Harus disetel ke TRUE untuk mengaktifkan penyisipan massal.
- Nilai default:
FALSE - Jenis data: Boolean
- Wajib: Tidak
EndpointOverrides
Properti koneksi ini menetapkan endpoint kustom dalam string yang dipisahkan koma.
- Nilai default:
BIGQUERY=https://bigquery.googleapis.comREAD_API=https://bigquerystorage.googleapis.comOAUTH2=https://oauth2.googleapis.comSTS=https://sts.googleapis.com
- Jenis data: String
- Wajib: Tidak
FilterTablesOnDefaultDataset
Properti koneksi ini mengontrol cakupan metadata yang ditampilkan oleh metode
DatabaseMetaData.getTables() dan DatabaseMetaData.getColumns().
Jika properti dinonaktifkan, pemfilteran tidak akan berfungsi. Properti koneksi DefaultDataset
juga harus ditetapkan untuk mengaktifkan pemfilteran.
- Nilai default:
FALSE - Jenis data: Boolean
- Wajib: Tidak
HighThroughputActivationRatio
Properti koneksi ini menetapkan nilai minimum untuk jumlah halaman dalam respons kueri. Jika jumlah ini terlampaui, dan kondisi EnableHighThroughputAPI dan
HighThroughputMinTableSize terpenuhi, driver akan mulai menggunakan
Storage Read API.
- Nilai default:
2 - Jenis data: Bilangan bulat
- Wajib: Tidak
HighThroughputMinTableSize
Properti koneksi ini menetapkan nilai minimum untuk jumlah baris dalam respons kueri. Jika jumlah ini terlampaui, dan kondisi EnableHighThroughputAPI dan
HighThroughputActivationRatio terpenuhi, driver akan mulai menggunakan
Storage Read API.
- Nilai default:
100 - Jenis data: Bilangan bulat
- Wajib: Tidak
JobCreationMode
Properti koneksi ini menentukan apakah kueri dijalankan tanpa membuat tugas. Nilai
1 berarti tugas dibuat untuk setiap kueri, dan nilai 2 berarti
kueri dapat dijalankan tanpa tugas.
- Nilai default:
2 - Jenis data: Bilangan bulat
- Wajib: Tidak
JobTimeout
Properti koneksi ini menetapkan waktu tunggu tugas (dalam detik) setelah tugas dibatalkan di server.
- Nilai default:
0 - Jenis data: Panjang
- Wajib: Tidak
KMSKeyName
Properti koneksi ini menetapkan nama kunci KMS untuk mengenkripsi data.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
Labels
Properti koneksi ini menetapkan label yang terkait dengan kueri untuk mengatur dan mengelompokkan tugas kueri.
- Nilai default: T/A
- Jenis data: Map<String, String>
- Wajib: Tidak
LargeResultDataset
Properti koneksi ini menetapkan set data tujuan untuk hasil kueri. Untuk mengetahui informasi selengkapnya, lihat Kumpulan hasil besar.
- Nilai default:
_google_jdbc, hanya jikaQueryDialect=BIG_QUERYatau jikaQueryDialect=SQLdan properti koneksiLargeResultTableditetapkan - Jenis data: String
- Wajib: Tidak
LargeResultsDatasetExpirationTime
Properti koneksi ini menentukan masa aktif semua tabel dalam set data, dalam milidetik. Properti ini diabaikan jika set data sudah memiliki waktu habis masa berlaku default yang ditetapkan.
- Nilai default:
3600000 - Jenis data: Panjang
- Wajib: Tidak
LargeResultTable
Properti koneksi ini menetapkan tabel tujuan untuk hasil kueri. Untuk mengetahui informasi selengkapnya, lihat Kumpulan hasil besar.
- Nilai default:
temp_table..., hanya jikaQueryDialect=BIG_QUERYatau jikaQueryDialect=SQLdan properti koneksiLargeResultTableditetapkan - Jenis data: String
- Wajib: Tidak
ListenerPoolSize
Properti koneksi ini menetapkan ukuran kumpulan pendengar jika penggabungan koneksi diaktifkan.
- Nilai default:
10 - Jenis data: Panjang
- Wajib: Tidak
Location
Properti koneksi ini menentukan lokasi tempat set data dibuat atau dikueri. BigQuery akan otomatis menentukan lokasi jika nilai ini tidak ditetapkan.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
LogLevel
Properti koneksi ini mengontrol tingkat detail yang dicatat selama interaksi database. Untuk deskripsi tingkat, lihat Logging.
- Nilai default:
0 - Jenis data: Bilangan bulat
- Wajib: Tidak
LogPath
Properti koneksi ini menetapkan direktori tempat file log ditulis. Untuk mengetahui detail selengkapnya, lihat Logging.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
MaximumBytesBilled
Properti koneksi ini membatasi jumlah byte yang ditagih. Kueri dengan byte yang ditagih lebih besar dari batas ini akan gagal tanpa menimbulkan biaya.
- Nilai default:
0 - Jenis data: Panjang
- Wajib: Tidak
MaxResults
Properti koneksi ini menetapkan jumlah maksimum hasil per halaman.
- Nilai default:
10000 - Jenis data: Panjang
- Wajib: Tidak
MetaDataFetchThreadCount
Properti koneksi ini mengonfigurasi jumlah thread yang digunakan untuk metode metadata database.
- Nilai default:
32 - Jenis data: Bilangan bulat
- Wajib: Tidak
OAuthAccessToken
Properti koneksi ini menentukan token akses yang digunakan untuk autentikasi token akses yang dibuat sebelumnya.
- Nilai default: T/A
- Jenis data: String
- Wajib: Jika
AUTH_TYPE=2
OAuthClientId
Properti koneksi ini menetapkan ID klien untuk autentikasi token refresh yang telah dibuat sebelumnya dan autentikasi akun pengguna.
- Nilai default: T/A
- Jenis data: String
- Wajib: Jika
AUTH_TYPE=1atauAUTH_TYPE=2
OAuthClientSecret
Properti koneksi ini menetapkan rahasia klien untuk autentikasi token refresh yang telah dibuat sebelumnya dan autentikasi akun pengguna.
- Nilai default: T/A
- Jenis data: String
- Wajib: Jika
AUTH_TYPE=1atauAUTH_TYPE=2
OAuthP12Password
Properti koneksi ini menetapkan sandi untuk file kunci PKCS12.
- Nilai default:
notasecret - Jenis data: String
- Wajib: Tidak
OAuthPvtKey
Properti koneksi ini menetapkan kunci akun layanan saat menggunakan autentikasi akun layanan. Nilai ini dapat berupa objek file kunci JSON mentah atau jalur ke file kunci JSON.
- Nilai default: T/A
- Jenis data: String
- Wajib: Jika
AUTH_TYPE=0dan nilaiOAuthPvtKeyPathtidak ditetapkan
OAuthPvtKeyPath
Properti koneksi ini menetapkan jalur ke kunci akun layanan saat menggunakan autentikasi akun layanan.
- Nilai default: T/A
- Jenis data: String
- Wajib: Jika
AUTH_TYPE=0dan nilaiOAuthPvtKeysertaOAuthServiceAcctEmailtidak ditetapkan
OAuthRefreshToken
Properti koneksi ini menetapkan token refresh untuk autentikasi token refresh yang dibuat sebelumnya. Token refresh OAuth 2.0 adalah jenis token khusus yang memungkinkan aplikasi mendapatkan token akses baru saat token saat ini berakhir, tanpa mengharuskan pengguna untuk melakukan autentikasi ulang.
- Nilai default: T/A
- Jenis data: String
- Wajib: Jika
AUTH_TYPE=2
OAuthServiceAcctEmail
Properti koneksi ini menetapkan email akun layanan saat menggunakan autentikasi akun layanan.
- Nilai default: T/A
- Jenis data: String
- Wajib: Jika
AUTH_TYPE=0dan nilaiOAuthPvtKeyPathtidak ditetapkan
OAuthType
Properti koneksi ini menentukan jenis autentikasi. Nilainya harus berupa salah satu dari berikut:
0: Autentikasi akun layanan Google1: Autentikasi akun pengguna Google2: Autentikasi token akses atau token refresh yang dibuat sebelumnya3: Autentikasi Kredensial Default Aplikasi4: Metode autentikasi eksternal, seperti Workforce Identity Federation atau Workload Identity Federation- Nilai default:
-1 - Jenis data: Bilangan bulat
- Wajib: Ya
PartnerToken
Properti koneksi ini digunakan oleh partner Google Cloud untuk melacak penggunaan driver.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
PrivateServiceConnectUris
Properti koneksi ini identik dengan properti EndpointOverrides. Sebagai gantinya, gunakan properti EndpointOverrides.
ProjectId
Properti koneksi ini menetapkan project ID default untuk driver. Project ini digunakan untuk menjalankan kueri dan ditagih untuk penggunaan resource. Jika tidak ditetapkan, driver menyimpulkan project ID.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak, tetapi sangat direkomendasikan
ProxyHost
Properti koneksi ini menetapkan nama host atau alamat IP server proxy yang digunakan untuk merutekan koneksi JDBC.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
ProxyPort
Properti koneksi ini menetapkan nomor port tempat server proxy memproses koneksi.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
ProxyPwd
Properti koneksi ini menetapkan sandi yang diperlukan untuk autentikasi saat terhubung melalui server proxy yang memerlukannya.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
ProxyUid
Properti koneksi ini menetapkan nama pengguna yang diperlukan untuk autentikasi saat terhubung melalui server proxy yang memerlukannya.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
QueryDialect
Properti koneksi ini menetapkan dialek SQL untuk eksekusi kueri. Gunakan SQL
untuk GoogleSQL (sangat direkomendasikan) dan BIG_QUERY untuk legacy SQL.
- Nilai default:
SQL - Jenis data: String
- Wajib: Tidak
QueryProperties
Properti koneksi ini mengonfigurasi modifikasi perilaku kueri.
Berikut adalah contoh yang ditetapkan dalam string koneksi:
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443; QueryProperties=dataset_project_id=TestProjectID,time_zone=America/New_York;
Berikut adalah contoh yang ditetapkan di class DataSource:
Map<String, String> queryProperties = new HashMap<>(); queryProperties.put("dataset_project_id", "TestProjectID"); queryProperties.put("time_zone", "America/New_York"); DataSource dataSource = new DataSource(); dataSource.setQueryProperties(queryProperties);
Untuk mengetahui detail selengkapnya, lihat ConnectionProperty.
- Nilai default: T/A
- Jenis data: Map<String, String>
- Wajib: Tidak
RequestGoogleDriveScope
Properti koneksi ini digunakan untuk meminta akses ke Google Drive. Jika diaktifkan, cakupan Drive hanya baca akan ditambahkan ke koneksi. Untuk
mengaktifkan properti ini, tetapkan nilai ke 1.
- Nilai default:
0 - Jenis data: Bilangan bulat
- Wajib: Tidak
RetryInitialDelay
Properti koneksi ini menetapkan penundaan (dalam detik) sebelum percobaan ulang pertama.
- Nilai default:
0 - Jenis data: Panjang
- Wajib: Tidak
RetryMaxDelay
Properti koneksi ini menetapkan batas maksimum (dalam detik) untuk penundaan percobaan ulang.
- Nilai default:
0 - Jenis data: Panjang
- Wajib: Tidak
ServiceAccountImpersonationChain
Properti koneksi ini menentukan daftar email akun layanan yang dipisahkan koma dalam rantai peniruan identitas.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
ServiceAccountImpersonationEmail
Properti koneksi ini menetapkan email akun layanan yang akan di-impersonate.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
ServiceAccountImpersonationScopes
Properti koneksi ini menentukan daftar cakupan OAuth2 yang dipisahkan koma untuk digunakan dengan akun yang di-impersonate.
- Nilai default:
https://www.googleapis.com/auth/bigquery - Jenis data: String
- Wajib: Tidak
ServiceAccountImpersonationTokenLifetime
Properti koneksi ini menetapkan masa aktif token akun yang di-impersonate (dalam detik).
- Nilai default:
3600 - Jenis data: Bilangan bulat
- Wajib: Tidak
SSLTrustStore
Properti koneksi ini menentukan jalur lengkap ke Java TrustStore yang berisi sertifikat Certificate Authority (CA) tepercaya. Driver menggunakan truststore ini untuk memvalidasi identitas server selama handshake SSL/TLS.
- Nilai default: T/A
- Jenis data: String
- Wajib: Tidak
SSLTrustStorePwd
Properti koneksi ini menentukan sandi ke Java TrustStore yang ditentukan
dalam properti SSLTrustStore.
- Nilai default: T/A
- Jenis data: String
- Wajib: Hanya jika menggunakan Java TrustStore yang dilindungi sandi
SWA_ActivationRowCount
Properti koneksi ini menetapkan jumlah minimum baris executeBatch insert yang, jika terlampaui, akan menyebabkan konektor beralih ke Storage Write API.
- Nilai default:
3 - Jenis data: Bilangan bulat
- Wajib: Tidak
SWA_AppendRowCount
Properti koneksi ini menetapkan ukuran aliran penulisan.
- Nilai default:
1000 - Jenis data: Bilangan bulat
- Wajib: Tidak
Timeout
Properti koneksi ini menetapkan durasi, dalam detik, saat konektor mencoba ulang panggilan API yang gagal sebelum waktu tunggu habis.
- Nilai default:
0 - Jenis data: Panjang
- Wajib: Tidak
UniverseDomain
Properti koneksi ini menetapkan domain semesta, domain tingkat teratas yang terkait dengan resource Google Cloud organisasi Anda.
- Nilai default:
googleapis.com - Jenis data: String
- Wajib: Tidak
UnsupportedHTAPIFallback
Properti koneksi ini menentukan apakah konektor melakukan penggantian ke REST API
(jika disetel ke TRUE) atau menampilkan error (jika disetel ke FALSE).
- Nilai default:
TRUE - Jenis data: Boolean
- Wajib: Tidak
UseQueryCache
Properti koneksi ini mengaktifkan penyiapan cache kueri.
- Nilai default:
TRUE - Jenis data: Boolean
- Wajib: Tidak