All Products
Search
Document Center

Tablestore:Kueri deret waktu

Last Updated:Apr 30, 2026

Panggil QueryTimeseriesMeta untuk mencari deret waktu dalam tabel deret waktu. Anda dapat memfilter hasil berdasarkan nama metrik, sumber data, tag, atribut, atau waktu pembaruan guna mengambil deret waktu yang dibutuhkan secara tepat.

Catatan

Untuk spesifikasi API lengkap, lihat QueryTimeseriesMeta.

Prasyarat

Client telah diinisialisasi. Untuk informasi selengkapnya, lihat Inisialisasi client Tablestore.

Definisi kelas

QueryTimeseriesMetaRequest menerima nama tabel deret waktu dan kondisi kueri opsional. Gunakan setCondition untuk memfilter hasil, setGetTotalHits untuk menyertakan jumlah deret waktu yang sesuai, dan setLimit untuk mengatur ukuran halaman. Lakukan paginasi melalui hasil menggunakan NextToken.

public class QueryTimeseriesMetaRequest implements Request {
    /** Nama tabel deret waktu. */
    private final String timeseriesTableName;
    /** Kondisi kueri. */
    private MetaQueryCondition condition;
    /** Menentukan apakah akan mengembalikan jumlah total deret waktu yang memenuhi kondisi kueri. */
    private boolean getTotalHits = false;
    /** Jumlah deret waktu yang dikembalikan dalam satu permintaan. */
    private int limit = -1;
    /** Token yang digunakan dalam permintaan berikutnya untuk mengkueri deret waktu. */
    private byte[] nextToken;
}

Kelas-kelas berikut mengimplementasikan MetaQueryCondition dan mendefinisikan jenis kondisi kueri yang didukung.

CompositeMetaQueryCondition

Gabungkan beberapa kondisi menggunakan logika AND, OR, atau NOT.

public class CompositeMetaQueryCondition implements MetaQueryCondition {
    /** Operator logika. */
    private final MetaQueryCompositeOperator operator;
    /** Daftar subkondisi. */
    private List<MetaQueryCondition> subConditions = new ArrayList<MetaQueryCondition>();
}

MeasurementMetaQueryCondition

Filter berdasarkan nama metrik.

public class MeasurementMetaQueryCondition implements MetaQueryCondition {
    /** Operator relasional. */
    private final MetaQuerySingleOperator operator;
    /** Nama metrik dari deret waktu yang ingin Anda kueri. */
    private final String value;
}

DataSourceMetaQueryCondition

Filter berdasarkan sumber data.

public class DataSourceMetaQueryCondition implements MetaQueryCondition {
    /** Operator relasional. */
    private final MetaQuerySingleOperator operator;
     /** Nama sumber data dari deret waktu yang ingin Anda kueri. */
    private final String value;
}

TagMetaQueryCondition

Filter berdasarkan nama dan nilai tag.

public class TagMetaQueryCondition implements MetaQueryCondition {
    /** Operator relasional. */
    private final MetaQuerySingleOperator operator;
    /** Nama tag. */
    private final String tagName;
    /** Nilai tag. */
    private final String value;
}

AttributeMetaQueryCondition

Filter berdasarkan nama dan nilai atribut.

public class AttributeMetaQueryCondition implements MetaQueryCondition {
    /** Operator relasional. */
    private final MetaQuerySingleOperator operator;
    /** Nama atribut. */
    private final String attributeName;
    /** Nilai atribut. */
    private final String value;
}

UpdateTimeMetaQueryCondition

Filter berdasarkan waktu terakhir metadata deret waktu diperbarui.

public class UpdateTimeMetaQueryCondition implements MetaQueryCondition {
    /** Operator relasional. */
    private final MetaQuerySingleOperator operator;
    /** Timestamp saat metadata deret waktu diperbarui. */
    private final long timeInUs;
}

Parameter

Tentukan timeseriesTableName dan setidaknya satu kondisi. Tabel berikut menjelaskan setiap jenis kondisi.

Kondisi

Deskripsi

compositeMetaQueryCondition

Menggabungkan beberapa kondisi dengan operator logika:

  • operator: operator logika. Nilai yang valid: AND, OR, dan NOT.

  • subConditions: daftar kondisi yang akan digabungkan.

measurementMetaQueryCondition

Memfilter berdasarkan nama metrik:

  • operator: operator relasional atau kondisi pencocokan awalan. Nilai yang valid: =, !=, >, >=, <, dan <=.

  • value: nama metrik yang dicocokkan. Tipe: STRING.

dataSourceMetaQueryCondition

Memfilter berdasarkan sumber data:

  • operator: operator relasional atau kondisi pencocokan awalan. Nilai yang valid: =, !=, >, >=, <, dan <=.

  • value: nama sumber data yang dicocokkan. Tipe: STRING.

tagMetaQueryCondition

Memfilter berdasarkan nama dan nilai tag:

  • operator: operator relasional atau kondisi pencocokan awalan. Nilai yang valid: =, !=, >, >=, <, dan <=.

  • tagName: nama tag yang dicocokkan. Tipe: STRING.

  • value: nilai tag yang dicocokkan. Tipe: STRING.

attributeMetaQueryCondition

Memfilter berdasarkan nama dan nilai atribut:

  • operator: operator relasional atau kondisi pencocokan awalan. Nilai yang valid: =, !=, >, >=, <, dan <=.

  • attributeName: nama atribut yang dicocokkan. Tipe: STRING.

  • value: nilai atribut yang dicocokkan. Tipe: STRING.

updateTimeMetaQueryCondition

Memfilter berdasarkan waktu terakhir metadata diperbarui:

  • operator: operator relasional. Nilai yang valid: =, !=, >, >=, <, dan <=.

  • timeInUs: timestamp pembaruan. Satuan: mikrodetik.

Contoh

Contoh berikut mengkueri semua deret waktu dalam sebuah tabel di mana nama metriknya adalah cpu dan nilai tag os diawali dengan Ubuntu. Hasil diambil dalam halaman berisi maksimal 100 entri dan berhenti setelah total 1.000 hasil.

private static void queryTimeseriesMeta(TimeseriesClient client) {
    // Tentukan nama tabel deret waktu. 
    String tableName = "<TIME_SERIES_TABLE>";
    QueryTimeseriesMetaRequest queryTimeseriesMetaRequest = new QueryTimeseriesMetaRequest(tableName);
    // Kueri semua deret waktu yang memiliki nama metrik cpu dan memiliki tag os yang nilainya diawali dengan Ubuntu. measurement_name="cpu" and have_prefix(os, "Ubuntu") 
    CompositeMetaQueryCondition compositeMetaQueryCondition = new CompositeMetaQueryCondition(MetaQueryCompositeOperator.OP_AND);
    compositeMetaQueryCondition.addSubCondition(new MeasurementMetaQueryCondition(MetaQuerySingleOperator.OP_EQUAL, "cpu"));
    compositeMetaQueryCondition.addSubCondition(new TagMetaQueryCondition(MetaQuerySingleOperator.OP_PREFIX, "os", "Ubuntu"));
    queryTimeseriesMetaRequest.setCondition(compositeMetaQueryCondition);
    queryTimeseriesMetaRequest.setGetTotalHits(true);
    // Tentukan jumlah maksimum entri metadata deret waktu yang dapat dikembalikan dalam satu permintaan. 
    queryTimeseriesMetaRequest.setLimit(100);
    // Mulai kueri. 
    QueryTimeseriesMetaResponse queryTimeseriesMetaResponse = client.queryTimeseriesMeta(queryTimeseriesMetaRequest);
    // Tampilkan jumlah total deret waktu yang memenuhi kondisi kueri. 
    System.out.println(queryTimeseriesMetaResponse.getTotalHits());

    // Simpan hasil permintaan. 
    List<TimeseriesMeta> timeseriesMetas = new ArrayList<TimeseriesMeta>();
    timeseriesMetas.addAll(queryTimeseriesMetaResponse.getTimeseriesMetas());

    // Jika NextToken disertakan dalam respons, Anda dapat membuat permintaan baru untuk mendapatkan sisa hasil. 
    while (queryTimeseriesMetaResponse.getNextToken() != null) {
        queryTimeseriesMetaRequest.setNextToken(queryTimeseriesMetaResponse.getNextToken());
        queryTimeseriesMetaResponse = client.queryTimeseriesMeta(queryTimeseriesMetaRequest);
        timeseriesMetas.addAll(queryTimeseriesMetaResponse.getTimeseriesMetas());
        // Tentukan jumlah maksimum deret waktu yang dapat dikembalikan. 
        if (timeseriesMetas.size() >= 1000) {
            break;
        }
    }

    System.out.println(timeseriesMetas.size());
    for (TimeseriesMeta timeseriesMeta : timeseriesMetas) {
        System.out.println(timeseriesMeta.getTimeseriesKey().getMeasurementName());
        System.out.println(timeseriesMeta.getTimeseriesKey().getDataSource());
        System.out.println(timeseriesMeta.getTimeseriesKey().getTags());
        System.out.println(timeseriesMeta.getAttributes());
        System.out.println(timeseriesMeta.getUpdateTimeInUs());
    }
}

Langkah berikutnya

Setelah mengkueri deret waktu, Anda dapat: