Anda dapat melakukan query data deret waktu yang memenuhi kondisi tertentu dengan memanggil operasi GetTimeseriesData.
Prasyarat
Klien harus diinisialisasi terlebih dahulu. Untuk detail lebih lanjut, lihat Inisialisasi klien Tablestore.
Parameter
Tabel berikut menjelaskan parameter yang digunakan dalam request.
Parameter | Deskripsi |
timeseriesTableName (wajib) | Nama tabel deret waktu. |
timeseriesKey (wajib) | Pengenal deret waktu. Parameter ini mencakup item konfigurasi berikut:
|
beginTimeInUs (opsional) | Rentang waktu untuk query, dalam mikrodetik. Nilai default: 0. beginTimeInUs dan endTimeInUs menentukan timestamp awal dan akhir, masing-masing. Rentang waktu untuk query adalah interval tertutup-kiri, terbuka-kanan. |
endTimeInUs (opsional) | |
backward (opsional) | Menentukan apakah hasil query diurutkan secara kronologis terbalik. Parameter ini memungkinkan Anda mendapatkan data terbaru dalam deret waktu. Nilai valid:
|
fieldsToGet (opsional) | Kolom yang akan diambil. Jika parameter ini tidak ditentukan, semua kolom akan di-query. Penting Anda harus secara eksplisit menentukan nama dan tipe data setiap kolom yang ingin Anda ambil dengan menggunakan parameter fieldsToGet. Jika tipe data tidak sesuai dengan tipe data sebenarnya, data dalam kolom tersebut tidak dapat dibaca. |
limit (opsional) | Jumlah maksimum baris yang dapat dikembalikan oleh permintaan ini. Nilai default: 5000. Nilai valid: Catatan Parameter limit hanya membatasi jumlah maksimum baris yang ingin Anda kembalikan. Bahkan jika jumlah baris yang memenuhi kondisi yang ditentukan melebihi batas, jumlah baris yang dikembalikan mungkin kurang dari nilai parameter limit karena batasan lain seperti jumlah maksimum data untuk pemindaian. Dalam hal ini, Anda dapat memperoleh baris yang tersisa dengan menggunakan parameter nextToken. |
nextToken (opsional) | Jika hanya beberapa baris yang memenuhi kondisi yang ditentukan yang dikembalikan dalam query, respons berisi parameter nextToken. Anda dapat menentukan parameter nextToken dalam permintaan berikutnya untuk memperoleh baris yang tersisa. Penting Jika Anda ingin menyimpan nextToken atau mentransfer nextToken ke halaman frontend, Anda dapat menggunakan Base64 untuk mengkodekan nextToken menjadi string. nextToken itu sendiri bukan string. Jika Anda langsung menggunakan |
Contoh
Contoh kode berikut menunjukkan cara melakukan query data deret waktu yang memenuhi kondisi tertentu dalam tabel deret waktu:
# Informasi tag dari deret waktu.
tags = {"tag1": "t1", "tag2": "t2"}
# Pengenal deret waktu.
key = TimeseriesKey("measure1", "datasource1", tags)
try:
request = GetTimeseriesDataRequest("")
# Pengenal deret waktu.
request.timeseriesKey = key
# Timestamp akhir rentang waktu untuk query.
request.endTimeInUs = int(time.time() * 1000000)
# Jumlah maksimum baris yang dapat dikembalikan oleh permintaan.
request.limit = 20
# Kolom yang akan diambil. Jika parameter ini tidak ditentukan, semua kolom dikembalikan.
request.fieldsToGet = {"string_field": DataType.STRING, "long_field": DataType.LONG}
# Panggil operasi untuk melakukan query data deret waktu.
response = ots_client.get_timeseries_data(request)
print(response.rows)
# Jika nextToken tidak kosong, Anda dapat memulai permintaan berikutnya.
if response.nextToken is not None:
# Dapatkan nextToken.
next_token = response.nextToken
# Jika Anda ingin menyimpan nextToken atau mentransfer nextToken ke halaman frontend, Anda dapat menggunakan Base64 untuk mengkodekan nextToken menjadi string untuk penyimpanan dan transmisi.
# Token itu sendiri bukan string. Jika Anda langsung menggunakan str(nextToken) untuk mengkodekan token sebagai string, informasi token akan hilang.
token_as_string = base64.b64encode(next_token).decode('utf-8')
# Dekode string menjadi byte.
next_token_byte = base64.b64decode(token_as_string.encode('utf-8'))
# Panggil operasi untuk melakukan query data deret waktu.
request.nextToken = next_token
response = ots_client.get_timeseries_data(request)
print(response.rows)
print("get timeseries data berhasil.")
except Exception as e:
# Jika pengecualian dilemparkan, pemanggilan gagal. Tangani pengecualian.
print("get timeseries data gagal. %s" % e)