全部产品
Search
文档中心

Tablestore:Query data deret waktu

更新时间:Jul 02, 2025

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:

  • measurement_name (wajib): nama metrik dari deret waktu.

  • data_source (wajib): informasi sumber data.

  • tags (wajib): informasi tag deret waktu, yang terdiri dari beberapa pasangan kunci-nilai.

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:

  • True: mengurutkan hasil query secara kronologis terbalik.

  • False (default): tidak mengurutkan hasil query secara kronologis terbalik.

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: (0,5000].

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 str(nextToken) untuk mengkodekan token sebagai string, informasi token akan hilang.

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)