Lindorm-cli adalah antarmuka baris perintah (CLI) ringan yang disediakan oleh Lindorm untuk menghubungkan dan mengelola database Lindorm. Anda dapat menggunakan Lindorm-cli untuk menjalankan operasi SQL dasar, seperti membuat tabel, mengkueri data, dan menulis data. Topik ini menjelaskan cara menggunakan Lindorm-cli untuk menghubungkan ke dan menggunakan Lindorm Time Series Database (LindormTSDB).
Prasyarat
Alamat IP klien telah ditambahkan ke daftar putih Lindorm. Untuk informasi selengkapnya, lihat Menetapkan daftar putih.
Langkah 1: Instal Lindorm-cli
Unduh paket instalasi Lindorm-cli yang sesuai dengan sistem operasi Anda. Tautan unduhan tercantum dalam tabel berikut.
CatatanAnda dapat menggunakan checksum SHA256 dalam tabel berikut untuk memverifikasi integritas dan keaslian paket instalasi Lindorm-cli yang diunduh.
Sistem operasi
Tautan unduh
Checksum SHA256
Linux
Anda juga dapat menjalankan perintah berikut untuk mengunduh paket:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-latest.tar.gz21945c466e2de2c256edd16afdfbb2234301573feb649a673939471a3d882b1a
Linux-arm64
Anda juga dapat menjalankan perintah berikut untuk mengunduh paket:
wget https://tsdbtools.oss-cn-hangzhou.aliyuncs.com/lindorm-cli-linux-arm64-latest.tar.gzbcae4d8479201d69e4883105d1a7f933fa46d78e19c171e8e1ebfbee28f6d953
Mac (chip Intel)
e82cb1678ea5b263813ccb87fff0149526c36a2654082785efe5a6aaeb4eb24b
Mac (chip Arm)
538d5fef122b416ca2ab63fd7074b77ef25840e9feb8d3490405aae36a537a68
Windows
e61078108a72b85382363e9619b8820aa5245bad60dec79ffd4bf9fea976e280
Ekstrak paket instalasi.
Sebagai contoh, pada sistem operasi Linux, jalankan perintah berikut untuk mengekstrak paket.
tar zxvf lindorm-cli-linux-latest.tar.gzSetelah paket diekstrak, file
lindorm-clidisimpan di folderlindorm-cli-linux-latest.
Langkah 2: Menghubungkan ke LindormTSDB
Klien diterapkan pada Linux atau macOS
Buka folder tempat file
lindorm-clidisimpan.cd <Folder tempat lindorm-cli disimpan>Jalankan pernyataan berikut untuk menghubungkan ke LindormTSDB.
./lindorm-cli -url <LindormTSDB SQL URL> -username <nama pengguna> -password <kata sandi> -database <nama database tujuan>Contoh koneksi
./lindorm-cli -url jdbc:lindorm:tsdb:url=http://ld-4xo90g5i370cu****-proxy-tsdb.lindorm.rds.aliyuncs.com:8242 -username user -password test -database defaultDeskripsi parameter
Parameter
Wajib
Deskripsi
LindormTSDB SQL URL
Ya
LindormTSDB SQL URL dari LindormTSDB. Contoh:
jdbc:lindorm:tsdb:url=http://ld-bp12pc23yfb3*****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242.CatatanAnda juga dapat menggunakan LindormTSDB HTTP URL untuk menghubungkan ke LindormTSDB menggunakan Lindorm-cli.
nama pengguna
Tidak
Nama pengguna yang digunakan untuk menghubungkan ke LindormTSDB.
Jika autentikasi pengguna dan verifikasi izin tidak diaktifkan untuk LindormTSDB, Anda tidak perlu menyetel nama pengguna dan kata sandi. Untuk informasi selengkapnya, lihat Pengelolaan pengguna dan izin.
kata sandi
Tidak
Kata sandi yang digunakan untuk menghubungkan ke LindormTSDB. Jika Anda lupa kata sandi, Anda dapat mengubah kata sandi di sistem manajemen kluster LindormTable.
Nama database tujuan
Tidak
Database yang ingin Anda hubungkan menggunakan Lindorm-cli. Database default adalah `default`. Selama koneksi, Anda dapat menjalankan pernyataan
use <nama database tujuan>untuk beralih ke database tujuan.Jika koneksi berhasil, hasil berikut dikembalikan:
lindorm-cli version: 1.0.xxDalam hasil di atas,
1.0.xxmenunjukkan nomor versi Lindorm-cli.
Klien diterapkan pada sistem operasi Windows
Metode 1
Buka command prompt (CMD) dan buka folder tempat file
lindorm-cli.exedisimpan.cd <Folder tempat lindorm-cli.exe disimpan>Jalankan perintah berikut di command prompt untuk menghubungkan ke LindormTSDB:
lindorm-cli -url <Titik akhir SQL LindormTSDB> -username <nama pengguna> -password <kata sandi> -database <Nama database>Jika koneksi berhasil, hasil berikut dikembalikan:
Connected to jdbc:lindorm:tsdb:url=http://****-proxy-tsdb-pub.lindorm.rds.aliyuncs.com:8242 lindorm-cli version: 1.0.xxDalam hasil ini,
1.0.xxadalah nomor versi Lindorm-cli.
Metode 2
Klik ganda program Lindorm-cli.exe dan jalankan pernyataan berikut:
connect <LindormTSDB SQL URL> <nama pengguna> <kata sandi> -database <nama database tujuan>Jika koneksi berhasil, tidak ada hasil yang dikembalikan.
Langkah 3: Menggunakan LindormTSDB
Membuat tabel
Buat tabel data deret waktu.
CREATE TABLE sensor ( device_id VARCHAR NOT NULL, region VARCHAR NOT NULL, time TIMESTAMP NOT NULL, temperature DOUBLE, humidity BIGINT, PRIMARY KEY(device_id, region, time) );CatatanSaat membuat tabel data deret waktu, kami menyarankan agar Anda menentukan kunci utama (PRIMARY KEY). Edisi Dasar tidak mendukung PRIMARY KEY. Pengidentifikasi unik sumber data biasanya ditentukan sebagai PRIMARY KEY, seperti ID perangkat dalam skenario Internet of Things (IoT), pengidentifikasi kendaraan unik dalam skenario Internet of Vehicles (IoV), atau ID aplikasi atau
ip:portdalam skenario Pemantauan.Nama kolom timestamp harus time. Kolom ini menunjukkan timestamp data dalam milidetik (ms).
Periksa apakah tabel sensor telah dibuat.
SHOW TABLES;Hasil berikut dikembalikan:
+-------------------+ | Tables_In_default | +-------------------+ | sensor | +-------------------+Lihat informasi bidang tabel data deret waktu.
DESCRIBE TABLE sensor;Hasil berikut dikembalikan:
+-------------+-----------+------------+------------+--------------+ | columnName | typeName | columnKind | primaryKey | partitionTag | +-------------+-----------+------------+------------+--------------+ | device_id | VARCHAR | TAG | true | true | | region | VARCHAR | TAG | true | true | | time | TIMESTAMP | TIMESTAMP | true | false | | temperature | DOUBLE | FIELD | false | false | | humidity | BIGINT | FIELD | false | false | +-------------+-----------+------------+------------+--------------+
Menulis data
Jika titik data memiliki tag dan timestamp yang sama, titik data tersebut dianggap sebagai titik data yang sama. Data yang ditulis kemudian akan menimpa data yang ditulis sebelumnya.
Menulis titik data satu per satu.
INSERT INTO sensor (device_id, region, time, temperature, humidity) VALUES('F07A1260','north-cn','2021-04-22 15:33:00',12.1,45); INSERT INTO sensor (device_id, region, time, temperature, humidity) VALUES('F07A1260','north-cn','2021-04-22 15:33:10',13.2,47); INSERT INTO sensor (device_id, region, time, temperature, humidity) VALUES('F07A1260','north-cn','2021-04-22 15:33:20',10.6,46); INSERT INTO sensor (device_id, region, time, temperature, humidity) VALUES('F07A1261','south-cn','2021-04-22 15:33:00',18.1,44); INSERT INTO sensor (device_id, region, time, temperature, humidity) VALUES('F07A1261','south-cn','2021-04-22 15:33:10',19.7,44);Menulis data secara batch.
INSERT INTO sensor (device_id, region, time, temperature, humidity) VALUES ('F07A1260','north-cn','2021-04-22 15:33:00',12.1,45), ('F07A1260','north-cn','2021-04-22 15:33:10',13.2,47), ('F07A1260','north-cn','2021-04-22 15:33:20',10.6,46), ('F07A1261','south-cn','2021-04-22 15:33:00',18.1,44), ('F07A1261','south-cn','2021-04-22 15:33:10',19.7,44);
Kueri data
Kueri bersyarat
Kueri data untuk perangkat F07A1260 dari 2021-04-22 15:33:00 hingga 2021-04-22 15:33:20:
SELECT device_id,region,time,temperature,humidity FROM sensor WHERE device_id = 'F07A1260' AND time >= '2021-04-22 15:33:00' AND time <= '2021-04-22 15:33:20';Hasil berikut dikembalikan:
+-----------+----------+---------------------------+-------------+----------+
| device_id | region | time | temperature | humidity |
+-----------+----------+---------------------------+-------------+----------+
| F07A1260 | north-cn | 2021-04-22T15:33:00+08:00 | 12.1 | 45 |
| F07A1260 | north-cn | 2021-04-22T15:33:10+08:00 | 13.2 | 47 |
| F07A1260 | north-cn | 2021-04-22T15:33:20+08:00 | 10.6 | 46 |
+-----------+----------+---------------------------+-------------+----------+Kueri downsampling
Kueri downsampling mengurangi laju sampel data deret waktu. Hal ini mengurangi jumlah titik data dalam set hasil.
Contoh berikut menunjukkan cara mengkueri suhu untuk perangkat F07A1260 dari 2021-04-22 15:33:00 hingga 2021-04-22 15:33:20 dan mengambil nilai suhu maksimum setelah downsampling dengan interval 20 detik:
SELECT device_id,region,time,max(temperature) AS max_temperature FROM sensor WHERE device_id = 'F07A1260' AND time >= '2021-04-22 15:33:00' AND time <= '2021-04-22 15:33:20' SAMPLE BY 20s;Hasil berikut dikembalikan:
+-----------+----------+---------------------------+-----------------+
| device_id | region | time | max_temperature |
+-----------+----------+---------------------------+-----------------+
| F07A1260 | north-cn | 2021-04-22T15:33:00+08:00 | 13.2 |
| F07A1260 | north-cn | 2021-04-22T15:33:20+08:00 | 10.6 |
+-----------+----------+---------------------------+-----------------+Kueri agregat
Hitung suhu maksimum di seluruh wilayah:
SELECT region,max(temperature) AS max_temperature FROM sensor WHERE time >= '2021-04-22 15:33:00' AND time <= '2021-04-22 15:33:20' GROUP BY region;Hasil berikut dikembalikan:
+----------+-----------------+
| region | max_temperature |
+----------+-----------------+
| north-cn | 13.2 |
| south-cn | 19.7 |
+----------+-----------------+Perintah umum Lindorm-cli
help: Menampilkan informasi bantuan.connect: Menghubungkan ke server.precision: Menentukan format tampilan waktu. Nilai yang valid adalah rfc3339, h, m, s, ms, u, dan ns.exitatauquit: Memutus koneksi dari instans LindormTSDB saat ini.
FAQ
Mengapa hasil kueri kosong setelah data dimasukkan?
Jika hasil kueri kosong setelah Anda menulis data, jalankan pernyataan DESCRIBE DATABASE <nama database> untuk memeriksa apakah masa hidup data (TTL) telah ditetapkan untuk database tersebut. Jika periode retensi data melebihi TTL, data tersebut akan dihapus secara otomatis dan tidak dapat dikueri.
Apakah saya dapat menggunakan Lindorm-cli untuk mengimpor dan mengekspor data deret waktu?
Untuk jumlah data kecil, Anda dapat menggunakan Lindorm-cli untuk mengimpor atau mengekspor file CSV dengan cepat. Untuk fitur ini, hubungi dukungan teknis Lindorm (nomor grup DingTalk: s0s3eg3).
Untuk jumlah data besar, kami menyarankan Anda menggunakan DataX untuk mengimpor data. Mengekspor data skala besar tidak didukung.