All Products
Search
Document Center

Tablestore:Kueri data dalam indeks Lastpoint

Last Updated:Apr 30, 2026

Lakukan kueri data dalam indeks Lastpoint menggunakan Tablestore SDK for Go.

Catatan penggunaan

Fitur indeks Lastpoint memerlukan Tablestore SDK for Go versi 1.7.15 atau lebih baru. Tingkatkan SDK Anda sebelum menggunakan fitur ini.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Kueri data dari indeks Lastpoint

Indeks Lastpoint menyimpan titik data terbaru untuk setiap deret waktu. Gunakan operasi GetRange untuk memindai semua entri dan mengambil nilai terbaru tanpa perlu memindai seluruh tabel time series.

Contoh berikut membaca semua baris dari indeks Lastpoint. Atur MaxVersion ke 1 karena indeks Lastpoint menerapkan semantik last-point—setiap kunci primary hanya menyimpan tulisan terbaru, sehingga hanya ada satu versi per baris.

func GetRange(client *tablestore.TableStoreClient, lastpointName string) {
	getRangeRequest := &tablestore.GetRangeRequest{}
	rangeRowQueryCriteria := &tablestore.RangeRowQueryCriteria{}
	rangeRowQueryCriteria.TableName = lastpointName

	startPK := new(tablestore.PrimaryKey)
	startPK.AddPrimaryKeyColumnWithMinValue("_#h")
	startPK.AddPrimaryKeyColumnWithMinValue("_m_name")
	startPK.AddPrimaryKeyColumnWithMinValue("_data_source")
	startPK.AddPrimaryKeyColumnWithMinValue("_tags")
	endPK := new(tablestore.PrimaryKey)
	endPK.AddPrimaryKeyColumnWithMaxValue("_#h")
	endPK.AddPrimaryKeyColumnWithMaxValue("_m_name")
	endPK.AddPrimaryKeyColumnWithMaxValue("_data_source")
	endPK.AddPrimaryKeyColumnWithMaxValue("_tags")

	rangeRowQueryCriteria.StartPrimaryKey = startPK
	rangeRowQueryCriteria.EndPrimaryKey = endPK
	rangeRowQueryCriteria.Direction = tablestore.FORWARD
	// Atur MaxVersion ke 1. Indeks Lastpoint menggunakan semantik last-point,
	// sehingga setiap kunci primary hanya menyimpan tulisan terbaru.
	rangeRowQueryCriteria.MaxVersion = 1
	getRangeRequest.RangeRowQueryCriteria = rangeRowQueryCriteria

	getRangeResp, err := client.GetRange(getRangeRequest)
	fmt.Println("get range result is ", getRangeResp)
	for {
		if err != nil {
			fmt.Println("get range failed with error:", err)
		}
		for _, row := range getRangeResp.Rows {
			fmt.Println("range get row with key", row.PrimaryKey.PrimaryKeys[0].Value, row.PrimaryKey.PrimaryKeys[1].Value, row.PrimaryKey.PrimaryKeys[2].Value)
		}
		if getRangeResp.NextStartPrimaryKey == nil {
			break
		} else {
			fmt.Println("next pk is :", getRangeResp.NextStartPrimaryKey.PrimaryKeys[0].Value, getRangeResp.NextStartPrimaryKey.PrimaryKeys[1].Value, getRangeResp.NextStartPrimaryKey.PrimaryKeys[2].Value)
			getRangeRequest.RangeRowQueryCriteria.StartPrimaryKey = getRangeResp.NextStartPrimaryKey
			getRangeResp, err = client.GetRange(getRangeRequest)
		}
		fmt.Println("continue to query rows")
	}
	fmt.Println("range get row finished")
}

Langkah berikutnya

  • Untuk membaca data dari tabel time series menggunakan metode Tablestore SDK for Go lainnya, lihat Read data.

  • Untuk menjalankan kueri yang lebih cepat terhadap indeks Lastpoint—seperti kueri Boolean, pencarian teks lengkap (full-text search), kueri prefix, dan kueri fuzzy—buat search index pada indeks Lastpoint. Untuk informasi selengkapnya, lihat Retrieve a Lastpoint index.