Topik ini menjelaskan cara mengkueri data deret waktu yang memenuhi kondisi tertentu dalam tabel deret waktu menggunakan Tablestore SDK for Java.
Prasyarat
Data deret waktu telah ditulis ke tabel deret waktu. Untuk informasi lebih lanjut, lihat Menulis Data Deret Waktu.
Instance TimeseriesClient telah diinisialisasi. Untuk informasi lebih lanjut, lihat Menginisialisasi Klien Tablestore.
Parameter
Parameter | Diperlukan | Deskripsi |
timeseriesKey | Ya | Pengenal dari deret waktu yang ingin Anda kueri. Anda dapat menggunakan parameter berikut untuk menentukan pengenal:
Penting Jika Anda tidak yakin tentang informasi deret waktu yang ingin Anda kueri, seperti nama data dan sumber data, Anda dapat memanggil operasi QueryTimeseriesMeta untuk mengambil deret waktu berdasarkan berbagai kondisi. Untuk informasi lebih lanjut, lihat Mengambil deret waktu. |
timeRange | Ya | Rentang waktu untuk kueri. Rentang waktu adalah interval tertutup kiri, terbuka kanan. Anda dapat menggunakan parameter berikut untuk menentukan rentang waktu:
|
backward | Tidak | Menentukan apakah akan mengurutkan hasil kueri dalam urutan kronologis terbalik. Ini memungkinkan Anda mendapatkan data terbaru dalam deret waktu. Nilai yang valid:
|
fieldsToGet | Tidak | Nama kolom data yang ingin Anda kembalikan. Jika Anda tidak menentukan parameter ini, semua kolom dikembalikan. Penting Saat Anda menentukan parameter fieldsToGet, Anda harus menentukan nama dan tipe data setiap kolom yang ingin Anda kembalikan. Jika tipe data kolom tidak sesuai dengan nama kolom, kolom tersebut tidak dikembalikan. |
limit | Tidak | Jumlah maksimum baris yang ingin Anda kembalikan. Catatan Parameter limit menentukan jumlah maksimum baris yang dapat dikembalikan untuk satu panggilan. Jika jumlah baris yang memenuhi kondisi kueri melebihi nilai parameter limit atau jumlah baris yang dikembalikan kurang dari nilai parameter limit karena batasan pada volume data yang dipindai, Anda dapat menggunakan parameter nextToken untuk mengembalikan data tersisa yang memenuhi kondisi kueri. |
nextToken | Tidak | Token yang digunakan untuk mendapatkan hasil lebih lanjut. Jika hanya sebagian baris yang memenuhi kondisi tertentu yang dikembalikan dalam kueri, respons berisi parameter nextToken. Anda dapat menentukan parameter nextToken dalam permintaan berikutnya untuk mendapatkan baris tersisa. Penting Jika Anda ingin menyimpan nextToken secara permanen atau mentransfer nextToken ke halaman frontend, Anda dapat menggunakan Base64 untuk mengkodekan nextToken menjadi string. Sebuah nextToken bukanlah string. Jika Anda menggunakan |
Contoh
Berikut adalah contoh kode yang menunjukkan cara mengkueri data dalam deret waktu berdasarkan timeseriesKey:
func GetTimeseriesDataSample(client *tablestore.TimeseriesClient , timeseriesTableName string) {
fmt.Println("[Info]: Mulai mengambil data deret waktu!")
// Buat timeseriesKey untuk deret waktu tempat Anda ingin mengkueri data.
timeseriesKey := tablestore.NewTimeseriesKey()
timeseriesKey.SetMeasurementName("NETWORK")
timeseriesKey.SetDataSource("127.0.0.1")
timeseriesKey.AddTag("City" , "Hangzhou")
timeseriesKey.AddTag("Region" , "Xihu")
// Buat permintaan kueri.
getTimeseriesDataRequest := tablestore.NewGetTimeseriesDataRequest(timeseriesTableName)
getTimeseriesDataRequest.SetTimeseriesKey(timeseriesKey)
getTimeseriesDataRequest.SetTimeRange(0 , time.Now().UnixNano() / 1000) // Tentukan rentang waktu untuk kueri.
getTimeseriesDataRequest.SetLimit(-1)
// Panggil operasi API terkait klien deret waktu untuk mengkueri data dalam deret waktu.
getTimeseriesResp , err := client.GetTimeseriesData(getTimeseriesDataRequest)
if err != nil {
fmt.Println("[Error]: Gagal mengambil data deret waktu dengan kesalahan: " , err)
return
}
fmt.Println("[Info]: Berhasil mengambil data deret waktu! TimeseriesRows: ")
for i := 0; i < len(getTimeseriesResp.GetRows()); i++ {
fmt.Println("[Info]: Baris" , i , ": [" , getTimeseriesResp.GetRows()[i].GetTimeseriesKey().GetMeasurementName(),
getTimeseriesResp.GetRows()[i].GetTimeseriesKey().GetDataSource(),
getTimeseriesResp.GetRows()[i].GetTimeseriesKey().GetTags(), "]",
getTimeseriesResp.GetRows()[i].GetTimeInus())
rows := getTimeseriesResp.GetRows()[i].GetFieldsMap()
for key, value := range rows {
fmt.Println(key, value.Value)
}
}
fmt.Println("[Info]: GetTimeseriesDataSample selesai! RequestId: " , getTimeseriesResp.RequestId)
}FAQ
Referensi
Untuk informasi lebih lanjut tentang operasi API, lihat GetTimeseriesData.
Anda juga dapat mengeksekusi pernyataan SQL untuk mengkueri data deret waktu. Untuk informasi lebih lanjut, lihat Gunakan SQL untuk Mengkueri Data Deret Waktu.
Untuk memvisualisasikan data deret waktu, Anda dapat menghubungkan Tablestore ke Grafana. Untuk informasi lebih lanjut, lihat Hubungkan Tablestore ke Grafana.