Pelajari cara menghubungkan ke Dataphin menggunakan driver JDBC.
Prasyarat
Sebelum menggunakan driver JDBC, Anda harus mengaktifkan fitur Dataphin OpenAPI.
Ikhtisar
Dua mode autentikasi: Driver JDBC Dataphin mendukung dua mode autentikasi: simple mode dan proxy mode. Untuk informasi lebih lanjut, lihat Authentication modes.
Hasil eksekusi konsisten: Menjalankan pernyataan SQL dengan driver JDBC Dataphin setara dengan menjalankannya di Konsol Dataphin. Oleh karena itu, hasil eksekusinya konsisten. Fitur-fitur yang dikonfigurasi di Dataphin, seperti izin, aturan desensitisasi, pengaturan keamanan, dan spesifikasi kode, juga memengaruhi hasil eksekusi driver JDBC Dataphin.
Batasan
Anda dapat menggunakan JDBC untuk terhubung ke Dataphin dari semua compute engine dan beberapa data source. Data source yang didukung meliputi MySQL, Oracle, MaxCompute, Hive, AnalyticDB for MySQL 3.0, StarRocks, AnalyticDB for PostgreSQL, dan Doris.
Saat Anda mengeksekusi pernyataan SQL dengan driver JDBC Dataphin, Dataphin melakukan pra-pemrosesan terhadap pernyataan tersebut untuk tugas-tugas seperti translation SQL dan desensitisasi data. Data hasil juga ditransmisikan dan diteruskan melalui Dataphin. Proses-proses ini dapat menimbulkan overhead performa, sehingga waktu kueri menjadi lebih lama dibandingkan dengan mengakses compute engine secara langsung.
Driver JDBC Dataphin mengirimkan pernyataan SQL ke Dataphin melalui OpenAPI untuk diproses, lalu diteruskan ke compute engine yang mendasarinya. Sebelum menggunakan driver JDBC Dataphin, Anda harus mengevaluasi volume panggilan yang diharapkan dan menentukan apakah perlu melakukan scale out kluster Dataphin dan compute engine Anda.
CatatanJika Anda tidak dapat melakukan evaluasi ini, Anda dapat mengajukan permintaan evaluasi kapasitas untuk kluster Dataphin Anda kepada tim O&M Dataphin. Ini tidak mencakup evaluasi kapasitas untuk compute engine.
Dataphin saat ini tidak mendukung traffic control atau concurrency control. Evaluasi dampak potensialnya secara cermat.
Versi driver JDBC dan tautan unduhan
Untuk mendapatkan paket JAR driver, hubungi tim O&M Dataphin.
Parameter koneksi
Saat JDBC Dataphin menggunakan ID AccessKey dan AccessKey Secret platform (dalam proxy mode), Anda dapat menggunakan sintaksis set untuk mengatur pengguna akses.
set dp_delegation_uid = 'target_source_user_uid';set dp_delegation_name = 'target_user_name';
Format URL JDBC: jdbc:dataphin://host:port/catalog?[tenant_id=TenantID][&ssl=true][&log_level=Log_Level][&user=UserName][&password=PassWord][&delegation_uid=DelegationUid][&account_type=AccountType][&connect_timeout=ConnectTimeout][&engine=engine_type][compute_project=ProjectName]
Nama parameter bersifat case-sensitive.
Tanda kurung siku ([]) hanya untuk ilustrasi dan harus dihilangkan dari string koneksi aktual.
Parameter | Wajib | Deskripsi | Contoh |
host | Ya | Nama domain Dataphin OpenAPI. Anda dapat memperoleh nama domain dari bagian OpenAPI invocation address pada halaman AccessKey Management di Personal Center, seperti yang ditunjukkan pada gambar berikut:
| dataphin-openapi.****.aliyun.com |
port | Tidak | Port ditentukan berdasarkan apakah HTTPS diaktifkan untuk Dataphin OpenAPI. Jika HTTPS diaktifkan, port-nya adalah | 80 |
catalog | Ya | Cakupan kueri default.
Catatan
| Exprojectname |
tenant_id | Ya | ID tenant yang akan dikueri. | 111***111 |
ssl | Tidak | Menentukan apakah akan menggunakan HTTPS.
| False |
currentschema | Tidak | Skema dari data source.
| information_schema |
compute_project | Tidak | Tentukan nama bahasa Inggris proyek. Proyek ini yang akan mengeksekusi kueri SQL. Proyek dan compute engine-nya yang terikat harus memiliki izin baca pada tabel yang dikueri.
| Exprojectname |
user | Ya | ID AccessKey pengguna atau platform. Saat menggunakan proxy mode, tentukan ID AccessKey platform.
| kIB**********PT0 |
log_level | Tidak | Tingkat logging. Nilai yang valid:
| DEBUG |
password | Ya | AccessKey Secret untuk pengguna yang ditentukan.
| Cy**************r2T |
delegation_uid | Tidak | Dalam proxy mode, parameter ini menentukan pengguna Dataphin yang akan di-impersonate. Untuk pengguna Dataphin yang diproksi, Anda harus memberikan ID akun yang sesuai berdasarkan account_type yang dipilih. Menyetel parameter ini mengaktifkan proxy mode. | 999***999 |
account_type | Tidak | Saat menggunakan proxy mode untuk autentikasi, Anda harus menentukan jenis akun pengguna yang diproksi.
Catatan
| USER_ID |
connect_timeout | Tidak | Timeout akuisisi koneksi, dalam detik.
| 10 |
engine | Tidak | Compute engine untuk proyek yang ditentukan oleh project_name dalam session atau string koneksi. Untuk compute engine Hadoop, engine default-nya adalah Hive, tetapi Anda dapat menggunakan parameter ini untuk mengaturnya ke Impala atau Spark. Jenis engine harus telah dikonfigurasi sebelumnya di compute engine. Jika engine yang ditentukan tidak didukung oleh proyek, pengaturan ini akan diabaikan dan peringatan akan dikembalikan. Nilai yang valid:
Catatan Parameter ini diabaikan saat Anda mengakses data source. | MaxCompute |
acceleration_source | Tidak | Tentukan sumber akselerasi. Anda dapat memilih kode sumber akselerasi apa pun dalam penyewa. | starrocks_code |
acceleration_resource_group | Tidak | Acceleration resource group. Anda dapat memilih resource group yang telah dikonfigurasi untuk acceleration source yang dipilih. | starrocks_resource_group |
Mode autentikasi
Simple mode
Atur username ke ID AccessKey pengguna dan password ke AccessKey Secret pengguna. Hal ini mengotentikasi koneksi sebagai pengguna tersebut. Untuk melihat AccessKey Anda, lihat Dataphin OpenAPI AccessKey Management.
Saat Anda mengakses Dataphin melalui driver JDBC, Dataphin mengotentikasi AccessKey dan memberikan otorisasi kepada pengguna untuk resource atau pernyataan SQL yang diminta. Dataphin kemudian mengeksekusi pernyataan SQL sebagai pengguna tersebut.
Proxy mode
Sebelum menggunakan proxy mode, Anda harus menghubungi tim O&M Dataphin untuk mengaktifkan dan mengonfigurasi fitur ini.
Proxy mode biasanya digunakan untuk integrasi tingkat sistem dengan Dataphin. Metode ini menghindari distribusi atau konfigurasi AccessKey untuk pengguna individu. Anda dapat menentukan pengguna yang diproksi dalam string koneksi (URL JDBC) untuk memastikan operasi diotorisasi berdasarkan izin pengguna tersebut. AccessKey tingkat platform memiliki hak istimewa tinggi dan dapat memproksi pengguna mana pun. Misalnya, jika client menggunakan AccessKey platform, atur delegation_uid=userA saat userA terhubung. Dataphin kemudian akan meng-impersonate userA untuk koneksi tersebut dan melakukan pemeriksaan izin berdasarkan profil pengguna tersebut.
Driver Dataphin
com.aliyun.dataphin.jdbc.DataphinDriver
API | Deskripsi | Definisi |
connect | Membuat koneksi database. | |
acceptsURL | Memeriksa apakah URL didukung. | |
com.aliyun.dataphin.jdbc.DataphinConnection
API | Deskripsi | Definisi |
createStatement | Membuat objek Statement. | |
prepareStatement | Membuat objek PreparedStatement. | |
com.aliyun.dataphin.jdbc.DataphinStatement
API | Deskripsi | Definisi |
executeQuery | Menjalankan pernyataan SQL dan mengembalikan objek ResultSet. | |
setFetchSize | Menentukan jumlah baris yang diambil dari database dalam satu batch. Jika parameter ini tidak disetel atau disetel ke 0, nilai default 1000 yang digunakan. | |
cancel | Mencoba membatalkan eksekusi objek | |
com.aliyun.dataphin.jdbc.DataphinPrepareStatement
API | Deskripsi | Definisi |
executeQuery | Menjalankan pernyataan SQL dan mengembalikan objek ResultSet. | |
com.aliyun.dataphin.jdbc.DataphinResultSetMetaData
API | Deskripsi | Definisi |
getColumnCount | Mendapatkan jumlah kolom dalam result set. | |
getColumnName | Mendapatkan nama kolom dalam result set. | |
com.aliyun.dataphin.jdbc.ResultSet
API | Deskripsi | Definisi |
next | Memindahkan kursor ke baris berikutnya dalam objek | |
com.aliyun.dataphin.jdbc.DatabaseMetaData
API | Deskripsi | Definisi |
getTables | Mendapatkan informasi tabel.
| |
getColumns | Mendapatkan informasi kolom untuk sebuah tabel.
| |
Contoh
Anda dapat memperoleh informasi catalog dengan menggunakan driver JDBC Dataphin.
1. Daftar tabel
Menampilkan daftar tabel fisik dan tampilan fisik dalam sebuah proyek.
Sintaksis
SHOW TABLES
[FROM db_name]
[LIKE 'pattern']Parameter
db_name:
Nama proyek Dataphin: Menampilkan tabel fisik dalam proyek tersebut.
Untuk proyek pengembangan dan data block, Anda harus secara eksplisit menambahkan akhiran _Dev.
Jika db_name tidak ditentukan, nilai default-nya adalah project_name yang ditentukan dalam string koneksi.
Hasil
Nama | Tipe | Deskripsi |
dim_user | Tabel logis | Tabel pengguna. |
ods_user | Tabel fisik | Tabel sumber pengguna. |
ods_user_logical_view | Tampilan logis | Tampilan logis. |
ods_user_physical_view2 | Tampilan fisik | Tampilan fisik. |
2. Dapatkan skema tabel
Menampilkan skema tabel fisik atau tampilan fisik.
Sintaksis
{DESCRIBE | DESC} table_name;Perintah ini hanya mendukung tabel fisik dan tampilan fisik.
Parameter
table_name: Nama tabel fisik atau tampilan fisik.
Hasil
Nama | Tipe | Deskripsi |
ID | BigInt | ID pengguna. |
Name | String | Nama pengguna. |
DS | String | Waktu partisi. |
Kontrol koneksi sisi server
Jumlah maksimum koneksi: Nilai default-nya adalah 100.
Timeout koneksi: Nilai default-nya adalah 288.000 detik (2 jam). Jika koneksi yang telah terbentuk tetap idle, koneksi tersebut akan terputus secara otomatis setelah periode ini. Jika Anda mencoba melakukan operasi pada koneksi yang terputus, error atau close exception akan dikembalikan. Ini sesuai dengan
Connection_Idle_Timeoutdalam URL JDBC.
Metadata untuk tugas JDBC di MaxCompute
Saat tugas JDBC dikirimkan dari Dataphin ke instans eksekusi MaxCompute, metadata berikut disertakan dalam pengiriman:
Parameter | Deskripsi |
logical_project | Nama proyek Dataphin tempat tugas JDBC dieksekusi. |
EXT_JDBC_TASKRUN_ID | ID tugas JDBC. |
EXT_DPN_TENANT_ID | ID tenant Dataphin tempat tugas JDBC dieksekusi. |
EXT_PLATFORM_ID | ID platform lapisan atas yang mengirimkan tugas ke MaxCompute. Nilai default-nya adalah Dataphin. |
biz_id | ID pengguna Dataphin yang mengeksekusi tugas JDBC. |
odps.idata.userenv | Informasi lingkungan pengguna. Ini mencakup versi Java SDK, versi Java, alamat IP, dan informasi MAC perangkat. Contoh:
|
Anda dapat menggunakan informasi ini untuk kasus penggunaan seperti menganalisis tagihan MaxCompute dan melihat durasi pekerjaan. Untuk informasi lebih lanjut, lihat Collect statistics on accounts of top N costs and time-consuming jobs of MaxCompute projects.
