全部产品
Search
文档中心

Lindorm:Kueri data

更新时间:Jul 02, 2025

LindormTSDB memungkinkan Anda menggunakan sintaks SQL standar, PromQL, serta API dan SDK yang kompatibel dengan Time Series Database (TSDB) untuk mengkueri data. Topik ini menjelaskan cara mengkueri data spatio-temporal di LindormTSDB.

Gunakan sintaks SQL standar untuk mengkueri data

Disarankan untuk menggunakan sintaks SQL standar saat mengkueri data di LindormTSDB. LindormTSDB mengoptimalkan sintaks SQL untuk data deret waktu guna meningkatkan kinerja kueri dalam berbagai skenario. Dengan pendekatan ini, stabilitas server LindormTSDB dapat ditingkatkan dengan penggunaan sumber daya yang lebih efisien.

Fitur

  • Fitur-fitur spesifik untuk data deret waktu, seperti kueri downsampling, kueri agregat, dan kueri nilai terbaru, didukung. Untuk informasi lebih lanjut, lihat Kueri Downsampling dan Kueri Nilai Terbaru.

  • Berbagai operator fungsi untuk data deret waktu disediakan. Untuk informasi lebih lanjut, lihat Fungsi Deret Waktu Umum.

  • Berbagai kemampuan komputasi dan analisis SQL disediakan berdasarkan Apache Calcite. Untuk informasi lebih lanjut, lihat Dokumentasi Resmi Calcite.

Untuk informasi lebih lanjut tentang fitur yang disediakan oleh sintaks SQL standar di LindormTSDB, lihat Sintaks SQL.

Metode akses yang didukung oleh kueri SQL

Anda dapat menggunakan Java Native SDK, driver Java Database Connectivity (JDBC), dan operasi API SQL HTTP untuk melakukan kueri SQL. Tabel berikut menjelaskan ketiga metode tersebut.

Metode Akses

Skenario

Deskripsi

Referensi

Java Native SDK

Pengembangan aplikasi Java

Java Native SDK mendukung transmisi data streaming dan menyediakan thread aman untuk pemanggilan API. Oleh karena itu, Anda tidak perlu mengelola koneksi tingkat bawah.

Java Native SDK

JDBC Driver

Pengembangan aplikasi Java yang memerlukan kerangka kerja

Anda harus mengembangkan kode di aplikasi Anda atau menggunakan Druid untuk mengelola kolam koneksi. JDBC harus digunakan bersama dengan kerangka kerja Object-Relational Mapping (ORM).

Java JDBC Driver

HTTP SQL API

Pengembangan aplikasi menggunakan bahasa pemrograman non-Java

LindormTSDB menyediakan operasi API berbasis HTTP untuk melakukan kueri SQL. Hasilnya dapat dikembalikan dalam mode streaming.

Gunakan API SQL berbasis HTTP dari LindormTSDB

Contoh

LindormTSDB menggunakan klausa SAMPLE BY untuk mengimplementasikan fitur deret waktu dalam kueri. Klausa SAMPLE BY digunakan untuk melakukan downsampling pada satu deret waktu. Klausa GROUP BY digunakan untuk melakukan agregasi pada beberapa deret waktu. SAMPLE BY dan GROUP BY tidak dapat digunakan bersama dalam satu klausa, namun Anda dapat menggunakannya secara terpisah dalam subkueri yang berbeda. Contoh berikut menunjukkan cara menggunakan klausa SAMPLE BY dan GROUP BY:

  • Gunakan SAMPLE BY untuk melakukan kueri downsampling pada satu deret waktu dengan interval downsampling selama 8 jam.

    SELECT device_id,region,time,count(humidity) AS count_humidity FROM sensor WHERE device_id='F07A1260' sample by 8h;
  • Gunakan SAMPLE BY untuk melakukan kueri downsampling pada beberapa deret waktu, lalu gunakan GROUP BY untuk mengagregasi data yang telah di-downsampling berdasarkan ID perangkat.

    SELECT device_id, max(avg_humidity) AS max_humidity  FROM (SELECT device_id,region,time,avg(humidity) AS avg_humidity FROM sensor sample by 8h) group by device_id;

Gunakan API dan SDK yang kompatibel dengan TSDB untuk mengkueri data

LindormTSDB kompatibel dengan 90% kemampuan yang disediakan oleh TSDB. Oleh karena itu, jika aplikasi Anda menggunakan TSDB untuk menyimpan data, Anda dapat langsung menggunakan sintaks SQL yang didukung oleh LindormTSDB untuk mengkueri data tanpa perlu memodifikasi aplikasi Anda. Kami merekomendasikan Anda memodifikasi aplikasi Anda untuk mengizinkan kueri SQL.

Gunakan operasi yang kompatibel dengan TSDB untuk mengkueri data multi-nilai

Anda dapat mengkueri data multi-nilai yang ditulis menggunakan operasi yang kompatibel dengan TSDB, API SQL HTTP, Java Native SDK, dan protokol baris InfluxDB.

Catatan

Data deret waktu dalam TSDB sesuai dengan tabel dalam LindormTSDB.

Untuk informasi lebih lanjut tentang cara mengkueri data multi-nilai, lihat topik-topik berikut:

Gunakan operasi yang kompatibel dengan TSDB untuk mengkueri data single-nilai

Anda dapat mengkueri data single-nilai yang ditulis menggunakan operasi API yang kompatibel dengan TSDB. Namun, kami tidak merekomendasikan penggunaan metode ini untuk mengkueri data.

Catatan

Jika Anda ingin mengkueri data yang menggunakan API SQL HTTP, Java Native SDK, dan protokol baris InfluxDB, atau data multi-nilai yang ditulis menggunakan operasi yang kompatibel dengan TSDB, Anda harus menetapkan data deret waktu dalam format metric@field untuk menyesuaikan kueri ke data multi-nilai. Dalam format ini, tetapkan metric sebagai nama tabel dan field sebagai nama kolom yang menyimpan data yang ingin Anda kueri.

Untuk informasi lebih lanjut tentang cara mengkueri data single-nilai, lihat topik-topik berikut:

Gunakan plugin Grafana untuk mengkueri data

Grafana adalah alat open source yang dapat digunakan untuk menampilkan sejumlah besar data pengukuran secara visual. Anda dapat menggunakan plugin sumber data Alibaba Cloud Lindorm yang disediakan oleh Grafana untuk mengakses data deret waktu di LindormTSDB.

Gunakan plugin Grafana untuk Lindorm untuk mengkueri data

Dengan menggunakan plugin sumber data Alibaba Cloud Lindorm yang disediakan oleh Grafana, Anda dapat menggunakan pernyataan SQL yang dihasilkan secara otomatis di editor atau membuat pernyataan SQL kustom untuk mengkueri data. Untuk informasi lebih lanjut, lihat Gunakan Grafana untuk Mengakses LindormTSDB.

Gunakan plugin Grafana untuk OpenTSDB untuk mengkueri data

LindormTSDB menyediakan operasi API yang kompatibel dengan OpenTSDB untuk mengkueri data. Anda dapat menggunakan plugin sumber data OpenTSDB yang disediakan oleh Grafana untuk mengkueri data deret waktu di Lindorm.

Catatan

Jika Anda ingin mengkueri data yang menggunakan API SQL HTTP, Java Native SDK, dan protokol baris InfluxDB, atau data multi-nilai yang ditulis menggunakan operasi yang kompatibel dengan TSDB, Anda harus menetapkan data deret waktu dalam format metric@field untuk menyesuaikan kueri ke data multi-nilai. Dalam format ini, tetapkan metric sebagai nama tabel dan field sebagai nama kolom yang menyimpan data yang ingin Anda kueri.

Tingkatkan kinerja kueri

Metode

Skenario

Deskripsi

Perbedaan

Pre-agregasi

Agregasi dan kueri sejumlah besar deret waktu secara real-time.

Pre-agregasi menggunakan fitur kueri kontinu yang disediakan oleh LindormTSDB untuk menghitung data yang akan dikueri terlebih dahulu dan menyimpan hasilnya ke tabel hasil. Dengan cara ini, kueri dipercepat karena hanya data di tabel hasil yang perlu dikueri. Untuk informasi lebih lanjut tentang kueri kontinu, lihat Kueri kontinu.

Dalam pre-agregasi, data dihitung terlebih dahulu sebelum benar-benar dikueri. Tabel hasil yang menyimpan hasil perhitungan berbeda dari tabel asli. Oleh karena itu, Anda harus menentukan tabel asli dan tabel hasil dalam kueri Anda saat menggunakan pre-agregasi.

Pre-downsampling

Kueri deret waktu dalam rentang waktu yang luas.

Pre-downsampling menggunakan LindormDFS untuk melakukan downsampling dan menyimpan data yang ditulis secara terpisah. Saat Anda mengkueri data yang ditulis, data yang di-downsample dengan rasio pre-downsampling yang paling dekat dengan rasio downsampling yang ditentukan dalam kondisi kueri akan dikueri. Kemudian, data yang dikueri diagregasi dan dihitung. Dengan cara ini, jumlah data yang perlu dikueri dan dihitung secara real-time berkurang sehingga latensi kueri menurun. Untuk informasi lebih lanjut tentang pre-downsampling, lihat Pre-downsampling.

Dalam pre-downsampling, presisi waktu data asli berkurang. Data yang di-downsample dan data asli disimpan di tabel yang sama. Oleh karena itu, Anda tidak perlu menentukan tabel yang berbeda dalam kueri Anda saat menggunakan pre-downsampling.