LindormTSDB'ye bağlanmak ve erişmek için Lindorm JDBC Sürücüsünü kullanın. Bu kılavuz, desteklenen API işlemlerini ve yöntemlerini de kapsar.
Arka plan bilgileri
LindormTSDB için JDBC Sürücüsü, JDBC 4.1 teknik özelliklerinde tanımlanan arayüzleri uygular. Bir zaman serisi veritabanı olarak LindormTSDB, JDBC 1.0'da tanımlanan temel özellik kümesinin bir alt kümesini destekler.
Ön koşullar
Java yüklüdür. Java Development Kit (JDK) 1,8 veya sonraki bir sürüm gereklidir.
İstemci IP adresi Lindorm izin listesine eklenmiştir. Daha fazla bilgi için bkz. İzin listesi ayarlama.
Lindorm TSDB bağlantı adresi alınmıştır. Daha fazla bilgi için bkz. Uç noktaları görüntüleme.
Yordam
-
Aşağıdaki yollardan birini kullanarak Lindorm JDBC Sürücüsü bağımlılığını yükleyin.
-
Manuel yükleme.
JDBC Sürücüsünü yerel olarak entegre etmek için JAR paketini Lindorm-all-client adresinden indirin. Yüklemek istediğiniz sürümü seçin. Örneğin, 2.1.2 sürümünü yüklemek için lindorm-all-client-2.1.2.jar paketini indirin.
-
Maven kullanarak indirme.
JDBC Sürücüsünü bir Maven projesine entegre etmek için bir proje oluşturun ve pom.xml dosyasına aşağıdaki bağımlılığı ekleyin:
<dependency> <groupId>com.aliyun.lindorm</groupId> <artifactId>lindorm-all-client</artifactId> <version>2.2.1.3</version> </dependency>Notlindorm-all-client sürüm numarasını ihtiyaç duyduğunuz sürüme ayarlayın.
-
-
LindormTSDB'ye erişebilirsiniz. Tam kod örneği için bkz. Erişim örneği.
-
LindormTSDB ile bağlantı kurun.
String url = "jdbc:lindorm:tsdb:url=http://<host:port>"; Connection conn = DriverManager.getConnection(url);Nothost:port: LindormTSDB'nin bağlantı adresi ve bağlantı noktası. Örneğin,ld-bp17j28j2y7pm****-proxy-tsdb.lindorm.rds.aliyuncs.com:8242.jdbc:lindorm:tsdb:url=http://<host:port>: JDBC bağlantı adresi.
-
Bir LindormTSDB veritabanı ve tablosu oluşturun.
Statement stmt = conn.createStatement(); stmt.execute("CREATE DATABASE test"); stmt.execute("USE test"); stmt.execute("CREATE TABLE sensor (device_id VARCHAR TAG,region VARCHAR TAG,time TIMESTAMP,temperature DOUBLE,humidity DOUBLE,PRIMARY KEY(device_id))"); -
Verileri sensor tablosuna ekleyin.
// Bulk write data with PreparedStatement (recommended) PreparedStatement pstmt = conn.prepareStatement("INSERT INTO sensor (device_id, region, time, temperature, humidity) VALUES (?, ?, ?, ?, ?)"); int batchSize = 100; long ts = System.currentTimeMillis(); for (int i = 0; i < batchSize; i++) { // Bind parameters in the order of columns in the INSERT statement pstmt.setString(1, "F07A1260"); pstmt.setString(2, "north-cn"); pstmt.setLong(3, ts + i * 10000); pstmt.setDouble(4, 12.1); pstmt.setLong(5, 45); pstmt.addBatch(); } pstmt.executeBatch(); pstmt.clearBatch(); // Bulk write data Statement stmt = conn.createStatement(); stmt.addBatch("INSERT INTO sensor(device_id, region, time, temperature, humidity) values('F07A1260','north-cn',1619076780000,12.1,45)"); stmt.addBatch("INSERT INTO sensor(device_id, region, time, temperature, humidity) values('F07A1260','north-cn',1619076790000,13.2,47)"); stmt.addBatch("INSERT INTO sensor(device_id, region, time, temperature, humidity) values('F07A1260','north-cn',1619076800000,10.6,46)"); stmt.addBatch("INSERT INTO sensor(device_id, region, time, temperature, humidity) values('F07A1261','south-cn',1619076780000,18.1,44)"); stmt.addBatch("INSERT INTO sensor(device_id, region, time, temperature, humidity) values('F07A1261','south-cn',1619076790000,19.7,44)"); stmt.executeBatch(); stmt.clearBatch(); // Write a single row (not recommended) Statement stmt = conn.createStatement(); stmt.execute("INSERT INTO sensor(device_id, region, time, temperature, humidity) values('F07A1260','north-cn',1619076780000,12.1,45)"); -
sensor tablosundan verileri sorgulayın.
ResultSet rs = stmt.executeQuery("select device_id, region,time,temperature,humidity from sensor where time >= 1619076780000 and time <= 1619076800000"); while (rs.next()) { String device_id = rs.getString("device_id"); String region = rs.getString("region"); Long time = rs.getLong("time"); Double temperature = rs.getDouble("temperature"); Long humidity = rs.getLong("humidity"); System.out.printf("%s %s %d %f %d\n", device_id, region, time, temperature, humidity); }
-