Topik ini menjelaskan cara menggunakan driver Java Database Connectivity (JDBC) untuk Lindorm guna terhubung dan memanfaatkan mesin deret waktu Lindorm (LindormTSDB).
Prasyarat
Java Development Kit (JDK) versi 1.8 atau yang lebih baru telah diinstal.
Alamat IP klien Anda telah ditambahkan ke daftar putih instance Lindorm. Untuk informasi lebih lanjut, lihat Konfigurasi Daftar Putih.
Titik akhir Lindorm telah diperoleh. Untuk informasi lebih lanjut, lihat Lihat Titik Akhir.

Prosedur
Gunakan salah satu metode berikut untuk menginstal driver JDBC untuk Lindorm:
Instal Driver JDBC secara Manual
Unduh paket JAR Lindorm-all-client ke klien Anda dan instal driver JDBC. Pilih versi driver JDBC yang ingin diinstal. Sebagai contoh, jika Anda ingin menginstal driver JDBC versi 2.1.5, unduh paket lindorm-all-client-2.1.5.jar.
Gunakan Maven untuk Mengunduh Driver JDBC
Untuk mengintegrasikan driver JDBC ke dalam proyek Maven, buat proyek Maven dan tambahkan dependensi berikut ke file pom.xml:
<dependency> <groupId>com.aliyun.lindorm</groupId> <artifactId>lindorm-all-client</artifactId> <version>2.2.1.3</version> </dependency>nullTentukan versi lindorm-all-client sesuai dengan kebutuhan bisnis Anda.
Akses LindormTSDB. Blok kode berikut memberikan contoh cara mengakses LindormTSDB:
import java.sql.*; class Test { public static void main(String[] args) { // Tentukan URL JDBC yang digunakan untuk terhubung ke LindormTSDB. String url = "jdbc:lindorm:tsdb:url=http://ld-bp12pt80qr38p****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242"; Connection conn = null; try { conn = DriverManager.getConnection(url); try (Statement stmt = conn.createStatement()) { // Buat tabel deret waktu. Secara default, tabel deret waktu dibuat di database bernama default. stmt.execute("CREATE TABLE sensor1 (device_id VARCHAR TAG,region VARCHAR TAG,time TIMESTAMP,temperature DOUBLE,humidity DOUBLE,PRIMARY KEY(device_id))"); // Masukkan beberapa baris dalam batch. stmt.addBatch("INSERT INTO sensor1(device_id, region, time, temperature, humidity) values('F07A1260','north-cn','2021-04-22 15:33:00',12.1,45)"); stmt.addBatch("INSERT INTO sensor1(device_id, region, time, temperature, humidity) values('F07A1260','north-cn','2021-04-22 15:33:10',13.2,47)"); stmt.addBatch("INSERT INTO sensor1(device_id, region, time, temperature, humidity) values('F07A1260','north-cn','2021-04-22 15:33:20',10.6,46)"); stmt.addBatch("INSERT INTO sensor1(device_id, region, time, temperature, humidity) values('F07A1261','south-cn','2021-04-22 15:33:00',18.1,44)"); stmt.addBatch("INSERT INTO sensor1(device_id, region, time, temperature, humidity) values('F07A1261','south-cn','2021-04-22 15:33:10',19.7,44)"); stmt.executeBatch(); stmt.clearBatch(); } // Kueri data dengan mengikat parameter. // Kueri data. Kami sarankan Anda menentukan rentang waktu untuk mengurangi jumlah data yang dipindai. try (PreparedStatement pstmt = conn.prepareStatement("SELECT device_id, region,time,temperature,humidity FROM sensor1 WHERE time >= ? and time <= ?")) { Timestamp startTime =Timestamp.valueOf("2021-04-22 15:33:00"); Timestamp endTime = Timestamp.valueOf("2021-04-22 15:33:20"); pstmt.setTimestamp(1, startTime); pstmt.setTimestamp(2, endTime); try (ResultSet rs = pstmt.executeQuery()) { while (rs.next()) { String device_id = rs.getString("device_id"); String region = rs.getString("region"); Timestamp time = rs.getTimestamp("time"); Double temperature = rs.getDouble("temperature"); Double humidity = rs.getDouble("humidity"); System.out.printf("%s %s %s %f %f\n", device_id, region, time, temperature, humidity); } } } } catch (SQLException e) { // Tangani pengecualian berdasarkan logika bisnis aplikasi Anda. e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }nullUntuk informasi lebih lanjut tentang parameter yang dapat dikonfigurasi untuk URL JDBC, lihat URL Driver JDBC.
Untuk informasi lebih lanjut tentang Operasi API dan metode yang didukung saat menggunakan driver JDBC untuk mengakses LindormTSDB, lihat Operasi API dan Metode yang Didukung.
Untuk informasi lebih lanjut tentang sintaks SQL yang didukung oleh LindormTSDB, lihat Referensi SQL.
Jika respons sampel berikut dikembalikan, eksekusi berhasil:
F07A1261 south-cn 2021-04-22 15:33:00.0 18.100000 44.000000 F07A1261 south-cn 2021-04-22 15:33:10.0 19.700000 44.000000 F07A1260 north-cn 2021-04-22 15:33:00.0 12.100000 45.000000 F07A1260 north-cn 2021-04-22 15:33:10.0 13.200000 47.000000 F07A1260 north-cn 2021-04-22 15:33:20.0 10.600000 46.000000