全部产品
Search
文档中心

Lindorm:Menulis data dengan cara yang efisien

更新时间:Jun 24, 2025

Topik ini menjelaskan cara menulis data ke LindormTSDB menggunakan Java Database Connectivity (JDBC).

Mengembangkan aplikasi untuk melakukan operasi penulisan data yang efisien berdasarkan JDBC

Jika Anda menggunakan JDBC untuk mengembangkan aplikasi, disarankan menggunakan objek PreparedStatement di JDBC. Dengan pendekatan ini, Anda dapat memasukkan beberapa catatan ke dalam database secara bersamaan. Ikuti langkah-langkah berikut:

  1. Gunakan JDBC untuk membuat objek connection.

    Untuk informasi lebih lanjut tentang cara menggunakan JDBC untuk terhubung ke database, lihat Gunakan Lindorm JDBC Driver untuk Terhubung dan Menggunakan Lindorm TSDB (Direkomendasikan).

  2. Buat objek PreparedStatement dan tentukan pernyataan INSERT yang mencakup parameter yang diperlukan.

    Contoh kode berikut menunjukkan cara membuat objek PreparedStatement berdasarkan data uji udara yang disediakan dalam topik Rancang Tabel Deret Waktu:

        StringBuilder builder = new StringBuilder();
        builder.append("INSERT INTO aqm (city, district, id, time, pm2_5, pm10, so2, no2) ");
        builder.append("VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
    
        PreparedStatement preparedStmt = connection.prepareStatement(builder.toString());
  3. Ikat parameter input ke objek PreparedStatement dan jalankan pernyataan INSERT untuk menulis data yang ditentukan oleh parameter input ke dalam database.

    Contoh kode berikut menunjukkan cara mengikat parameter input dalam pernyataan INSERT pada langkah sebelumnya ke objek PreparedStatement:

        for (int i = 0; i < batchSize; i++) {
            // Ikatan parameter ke objek sesuai urutan kolom parameter yang ditentukan dalam pernyataan INSERT.
            // Parameter seperti city, district, id, ts, dan pm25 dalam kode berikut adalah variabel lokal yang digunakan untuk mengikat parameter:
            preparedStmt.setString(1, city);
            preparedStmt.setString(2, district);
            preparedStmt.setString(3, id);
            preparedStmt.setTimestamp(4, ts);
            preparedStmt.setDouble(5, pm25);
            preparedStmt.setDouble(6, pm10);
            preparedStmt.setDouble(7, so2);
            preparedStmt.setDouble(8, no2);
            
            // Tambahkan parameter ke batch.
            preparedStmt.addBatch();
        }
    
        // Tulis data yang ditentukan dalam batch ke database.
        int[] results = preparedStmt.executeBatch();
    
        // Kueri jumlah catatan data yang telah ditulis dari hasil. Sisa kode dilewati.
    }
null

  • Saat menggunakan JDBC di LindormTSDB, Anda dapat menggunakan objek PreparedStatement untuk mengonfigurasi parameter hanya dengan placeholder tanda tanya (?). Saat memanggil operasi API yang disediakan oleh PreparedStatement untuk mengikat parameter, pastikan nilai yang sesuai dengan indeks parameter yang ditentukan untuk setXXX() konsisten dengan parameter kolom yang sesuai dengan placeholder.

  • Jika parameter input diikat dalam batch sebelum metode executeBatch() dipanggil untuk objek PreparedStatement, jumlah batch yang lebih besar tidak selalu berarti performa database yang lebih baik. Performa database bervariasi berdasarkan definisi tabel tempat data dimasukkan. Jika tabel hanya berisi satu kolom bidang dan hingga lima kolom tag, serta variabel batchSize dalam objek PreparedStatement diatur ke 5000, database memberikan performa tulis yang optimal.