Memasukkan baris data ke dalam tabel di ApsaraDB for ClickHouse.
Sintaksis
INSERT INTO [db.]table [(c1, c2, c3)] VALUES (v11, v12, v13), (v21, v22, v23), ...Untuk kolom yang didefinisikan dalam skema tabel tetapi tidak disebutkan dalam pernyataan tersebut, ApsaraDB for ClickHouse mengisi nilai berdasarkan aturan berikut:
| Kondisi | Perilaku |
|---|---|
| Ekspresi default didefinisikan untuk kolom tersebut | Mengevaluasi ekspresi dan memasukkan hasilnya |
| Tidak ada ekspresi default yang didefinisikan | Memasukkan 0 atau string kosong |
Gunakan SELECT dengan INSERT INTO
INSERT INTO [db.]table [(c1, c2, c3)] SELECT ...Kolom dari hasil SELECT dipetakan ke kolom dalam INSERT INTO secara ketat berdasarkan urutan posisi—nama kolom tidak perlu sesuai. ApsaraDB for ClickHouse secara otomatis mengonversi tipe data jika diperlukan.
Dukungan ekspresi
Hanya bentuk VALUES yang mendukung ekspresi inline seperti now() dan 1 + 2. Meskipun menggunakan VALUES, hindari ekspresi inline karena evaluasinya dilakukan baris demi baris, yang tidak efisien. Sebaiknya hitung nilai tersebut sebelum melakukan insert.
Pertimbangan kinerja
Saat ApsaraDB for ClickHouse mengeksekusi pernyataan INSERT INTO, data langsung diproses: diurutkan berdasarkan primary key dan dipartisi. Jika data yang akan dimasukkan mencakup beberapa bulan, kinerja insert akan menurun secara signifikan.
Untuk menjaga throughput insert yang tinggi:
Tulis volume data yang besar sekaligus, misalnya 100.000 baris per operasi.
Kelompokkan data sebelum menulisnya ke kluster ApsaraDB for ClickHouse.
Pada skenario berikut, kinerja insert tidak terpengaruh:
Data ditulis secara real time.
Data yang akan ditulis sudah diurutkan berdasarkan waktu.