Setelah membuat tabel deret waktu di Tablestore dan tabel pemetaan untuk tabel tersebut di SQL, Anda dapat menjalankan pernyataan SQL di konsol Tablestore atau menggunakan SDK Tablestore untuk menanyakan data deret waktu.
Tabel pemetaan untuk tabel deret waktu di SQL
Model TimeSeries diklasifikasikan menjadi model nilai tunggal dan model multi-nilai berdasarkan apakah satu atau beberapa nilai dihasilkan pada setiap titik waktu dalam deret waktu. Tabel berikut menggambarkan jenis tabel pemetaan yang dapat dibuat untuk tabel deret waktu di SQL untuk menanyakan data.
Jenis Tabel Pemetaan | Deskripsi | Metode Pembuatan | Nama Tabel Pemetaan di SQL |
Menanyakan data deret waktu menggunakan tabel pemetaan dalam model nilai tunggal. | Setelah membuat tabel deret waktu, sistem secara otomatis membuat tabel pemetaan di SQL untuk tabel deret waktu. | Sama dengan nama tabel deret waktu. | |
Menanyakan data deret waktu menggunakan tabel pemetaan dalam model multi-nilai. | Setelah membuat tabel deret waktu, Anda dapat secara manual membuat tabel pemetaan di SQL untuk tabel deret waktu. | Nama tabel pemetaan dalam format | |
Menanyakan metadata deret waktu. | Setelah membuat tabel deret waktu, sistem secara otomatis membuat tabel pemetaan di SQL untuk metadata deret waktu. | Nama tabel pemetaan dalam format |
Tabel pemetaan dalam model nilai tunggal
Setelah membuat tabel deret waktu, sistem secara otomatis membuat tabel pemetaan dalam model nilai tunggal di SQL untuk tabel deret waktu. Nama tabel pemetaan di SQL sama dengan nama tabel deret waktu. Anda dapat menggunakan tabel pemetaan ini untuk menanyakan data deret waktu.
Tabel berikut menggambarkan skema tabel pemetaan di SQL.
Nama kolom | Tipe | Deskripsi |
_m_name | VARCHAR | Nama metrik. |
_data_source | VARCHAR | Sumber data. |
_tags | VARCHAR | Tag dari deret waktu. Nilainya adalah array yang berisi beberapa tag dalam format ["tagKey1=tagValue1","tagKey2=tagValue2"]. Anda dapat menggunakan fungsi tag_value_at untuk mengekstrak nilai dari tag. |
_time | BIGINT | Timestamp dari titik data. Unit: mikrodetik. |
_field_name | VARCHAR | Nama kolom data. |
_long_value | BIGINT | Nilai data tipe integer. Jika tipe data kolom data bukan integer, nilainya NULL. |
_double_value | DOUBLE | Nilai data tipe floating-point. Jika tipe data kolom data bukan floating-point, nilainya NULL. |
_bool_value | BOOL | Nilai data tipe Boolean. Jika tipe data kolom data bukan Boolean, nilainya NULL. |
_string_value | VARCHAR | Nilai data tipe string. Jika tipe data kolom data bukan string, nilainya NULL. |
_binary_value | MEDIUMBLOB | Nilai data tipe biner. Jika tipe data kolom data bukan biner, nilainya NULL. |
_attributes | VARCHAR | Properti dari deret waktu. Format properti sama dengan format tag. |
_meta_update_time | BIGINT | Titik waktu ketika metadata deret waktu diperbarui. Ketika Anda memperbarui properti dari deret waktu, sistem secara otomatis memperbarui waktu pembaruan metadata dari deret waktu. Jika Anda terus menulis data ke deret waktu, sistem memperbarui waktu pembaruan metadata dari deret waktu secara berkala. Anda dapat menggunakan waktu pembaruan metadata untuk menentukan apakah deret waktu aktif. |
Tabel pemetaan dalam model multi-nilai
Untuk menanyakan data deret waktu menggunakan tabel pemetaan dalam model multi-nilai, jalankan pernyataan CREATE TABLE untuk membuat tabel pemetaan dalam model multi-nilai. Nama tabel pemetaan di SQL dalam format Nama tabel deret waktu::Akhiran. Tentukan Akhiran saat membuat tabel pemetaan di SQL untuk tabel deret waktu. Anda dapat membuat beberapa tabel pemetaan dalam model multi-nilai di SQL untuk tabel deret waktu.
Saat membuat tabel pemetaan dalam model multi-nilai untuk tabel deret waktu, tentukan nama tabel pemetaan serta nama dan tipe kolom data dalam tabel pemetaan. Untuk informasi lebih lanjut, lihat bagian Buat Tabel Pemetaan dalam Model Multi-Nilai untuk Tabel Deret Waktu dari topik ini.
Tabel berikut menggambarkan skema tabel pemetaan di SQL.
Jika ingin membaca kolom properti (_attributes) dari metadata deret waktu atau kolom waktu pembaruan metadata (_meta_update_time) menggunakan tabel pemetaan dalam model multi-nilai, tambahkan dua kolom tersebut ke tabel pemetaan. Sistem secara otomatis mengisi konten dalam dua kolom metadata tersebut.
Nama kolom | Tipe | Deskripsi |
_m_name | VARCHAR | Nama metrik. |
_data_source | VARCHAR | Sumber data. |
_tags | VARCHAR | Tag dari deret waktu. Nilainya adalah array yang berisi beberapa tag dalam format ["tagKey1=tagValue1","tagKey2=tagValue2"]. Anda dapat menggunakan fungsi tag_value_at untuk mengekstrak nilai dari tag. |
_time | BIGINT | Timestamp dari titik data. Unit: mikrodetik. |
Nama kolom data kustom. | Anda dapat menambahkan beberapa kolom data kustom ke tabel pemetaan di SQL. Jika nama atau tipe kolom yang ditentukan dalam tabel pemetaan di SQL tidak sesuai dengan nama atau tipe kolom dalam tabel deret waktu, nilai kolom dalam tabel pemetaan adalah null. | |
_attributes (opsional) | MEDIUMTEXT | Properti dari deret waktu. Format properti sama dengan format tag. |
_meta_update_time (opsional) | BIGINT | Titik waktu ketika metadata deret waktu diperbarui. Ketika Anda memperbarui properti dari deret waktu, sistem secara otomatis memperbarui waktu pembaruan metadata dari deret waktu. Jika Anda terus menulis data ke deret waktu, sistem memperbarui waktu pembaruan metadata dari deret waktu secara berkala. Anda dapat menggunakan waktu pembaruan metadata untuk menentukan apakah deret waktu aktif. |
Tabel pemetaan untuk metadata deret waktu
Setelah membuat tabel deret waktu, sistem secara otomatis membuat tabel pemetaan untuk metadata deret waktu. Nama tabel pemetaan di SQL dalam format Nama tabel deret waktu::meta. Anda dapat menggunakan tabel pemetaan ini untuk menanyakan metadata deret waktu. Sebagai contoh, jika nama tabel deret waktu adalah timeseries_table, nama tabel pemetaan untuk metadata deret waktu adalah timeseries_table::meta.
Tabel berikut menggambarkan skema tabel pemetaan di SQL.
Nama kolom | Tipe | Deskripsi |
_m_name | VARCHAR | Nama metrik. |
_data_source | VARCHAR | Sumber data. |
_tags | VARCHAR | Tag dari deret waktu. |
_attributes | VARCHAR | Properti dari deret waktu. |
_meta_update_time | BIGINT | Titik waktu ketika metadata deret waktu diperbarui. Ketika Anda memperbarui properti dari deret waktu, sistem secara otomatis memperbarui waktu pembaruan metadata dari deret waktu. Jika Anda terus menulis data ke deret waktu, sistem memperbarui waktu pembaruan metadata dari deret waktu secara berkala. Anda dapat menggunakan waktu pembaruan metadata untuk menentukan apakah deret waktu aktif. |
Sintaksis SQL
Buat tabel pemetaan dalam model multi-nilai untuk tabel deret waktu
Anda dapat menjalankan pernyataan CREATE TABLE untuk membuat tabel pemetaan dalam model multi-nilai untuk tabel deret waktu.
Sintaksis SQL
CREATE TABLE `timeseries_table::user_mapping_name` ( `_m_name` VARCHAR(1024), `_data_source` VARCHAR(1024), `_tags` VARCHAR(1024), `_time` BIGINT(20), `user_column_name1` data_type, ...... `user_column_namen` data_type, PRIMARY KEY(`_m_name`,`_data_source`,`_tags`,`_time`) );Untuk informasi lebih lanjut tentang parameter dalam sintaksis SQL, lihat skema tabel dalam bagian Tabel Pemetaan dalam Model Multi-Nilai dari topik ini.
Contoh SQL
Kode sampel berikut memberikan contoh cara membuat tabel pemetaan dalam model multi-nilai bernama
timeseries_table::muti_modeluntuk tabel deret waktu. Metrik dalam tabel pemetaan adalah cpu, memory, dan disktop. Contoh kode SQL:CREATE TABLE `timeseries_table::muti_model` ( `_m_name` VARCHAR(1024), `_data_source` VARCHAR(1024), `_tags` VARCHAR(1024), `_time` BIGINT(20), `cpu` DOUBLE(10), `memory` DOUBLE(10), `disktop` DOUBLE(10), PRIMARY KEY(`_m_name`,`_data_source`,`_tags`,`_time`) );
Menanyakan data
Anda dapat menjalankan pernyataan SELECT untuk menanyakan data deret waktu. Untuk informasi lebih lanjut, lihat Menanyakan Data.
Tablestore menyediakan fungsi ekstensi tag_value_at untuk mengekstrak nilai dari tag dalam tags (_tags) dari deret waktu. Anda juga dapat menggunakan fungsi tersebut untuk mengekstrak nilai dari properti dalam properties (_attributes) dari deret waktu.
Jika nilai _tags adalah ["host=abc","region=hangzhou"], Anda dapat menggunakan tag_value_at(_tags, "host") untuk mengekstrak nilai abc dari tag host. Pernyataan SQL berikut menunjukkan contohnya:
SELECT tag_value_at(_tags, "host") as host FROM timeseries_table LIMIT 1;Contoh SQL
Menanyakan deret waktu
Setelah membuat tabel deret waktu, sistem secara otomatis membuat tabel pemetaan untuk metadata deret waktu. Anda dapat menggunakan tabel pemetaan ini untuk menanyakan deret waktu.
Dalam contoh ini, tabel deret waktu bernama timeseries_table dan tabel pemetaan untuk metadata deret waktu bernama timeseries_table::meta digunakan. Metrik dalam tabel pemetaan adalah basic_metric.
Menanyakan deret waktu yang memiliki nama metrik basic_metric dalam tabel pemetaan untuk metadata deret waktu.
SELECT * FROM `timeseries_table::meta` WHERE _m_name = "basic_metric" LIMIT 100;Menanyakan deret waktu yang memenuhi beberapa kondisi tag (host=host001 dan region=hangzhou) dalam tabel pemetaan untuk metadata deret waktu.
SELECT * FROM `timeseries_table::meta` WHERE _m_name = "basic_metric" AND tag_value_at(_tags, "host") = "host001" AND tag_value_at(_tags, "region") = "hangzhou" LIMIT 100;Menanyakan deret waktu yang memenuhi beberapa kondisi tag (host=host001 dan region=hangzhou), kondisi properti tertentu (status=online), dan masih aktif setelah titik waktu tertentu dalam tabel pemetaan untuk metadata deret waktu.
SELECT * FROM `timeseries_table::meta` WHERE _m_name = "basic_metric" AND tag_value_at(_tags, "host") = "host001" AND tag_value_at(_tags, "region") = "hangzhou" AND tag_value_at(_attributes, "status") = "online" AND _meta_update_time > (UNIX_TIMESTAMP() - 900) * 1000000 LIMIT 100;
Menanyakan data deret waktu dengan menggunakan tabel pemetaan dalam model nilai tunggal
Setelah membuat tabel deret waktu, sistem secara otomatis membuat tabel pemetaan dalam model nilai tunggal untuk tabel deret waktu. Anda dapat menggunakan tabel pemetaan ini untuk menanyakan data deret waktu.
Dalam contoh ini, tabel deret waktu bernama timeseries_table dan tabel pemetaan dalam model nilai tunggal bernama timeseries_table digunakan. Metrik dalam tabel pemetaan adalah basic_metric.
Menanyakan data yang memiliki tipe metrik basic_metric dalam tabel data deret waktu.
SELECT * FROM timeseries_table WHERE _m_name = "basic_metric" LIMIT 10;Menanyakan data yang memiliki tipe metrik basic_metric dan sumber data device001 setelah titik waktu tertentu dalam tabel data deret waktu.
SELECT * FROM timeseries_table WHERE _m_name = "basic_metric" AND _data_source = "device001" AND _time > (UNIX_TIMESTAMP() - 900) * 1000000 LIMIT 10;Menanyakan data dalam deret waktu yang memenuhi kondisi tag tunggal (host=host001) dalam tabel data deret waktu.
SELECT * FROM timeseries_table WHERE _m_name = "basic_metric" AND tag_value_at(_tags, "host") = "host001" AND _time > (UNIX_TIMESTAMP() - 900) * 1000000 LIMIT 10;Menanyakan data dalam deret waktu yang memenuhi beberapa kondisi tag (host=host001 dan region=hangzhou) dalam tabel data deret waktu.
SELECT * FROM timeseries_table WHERE _m_name = "basic_metric" AND tag_value_at(_tags, "host") = "host001" AND tag_value_at(_tags, "region") = "hangzhou" AND _time > (UNIX_TIMESTAMP() - 900) * 1000000 LIMIT 10;Agregasi (avg dan max) data cpu_usr dalam deret waktu yang memenuhi kondisi tag tertentu (host=host001) berdasarkan jendela waktu 600 detik dalam tabel data deret waktu.
SELECT tag_value_at(_tags, "host") as host,_time DIV 600000000 * 600 as time_sec,avg(_double_value) as cpu_avg,max(_double_value) as cpu_max FROM timeseries_table WHERE _m_name = "basic_metric" AND _time > (UNIX_TIMESTAMP() - 21600) * 1000000 AND tag_value_at(_tags, "host") = "host001" AND _field_name = "cpu_summary_usr" GROUP BY host,time_sec ORDER BY time_sec LIMIT 100;
Menanyakan data deret waktu dengan menggunakan tabel pemetaan dalam model multi-nilai
Setelah membuat tabel deret waktu, Anda dapat membuat tabel pemetaan dalam model multi-nilai untuk tabel deret waktu. Anda dapat menggunakan tabel pemetaan ini untuk menanyakan data deret waktu. Untuk informasi lebih lanjut, lihat bagian Buat Tabel Pemetaan dalam Model Multi-Nilai untuk Tabel Deret Waktu dari topik ini.
Dalam contoh ini, tabel deret waktu bernama timeseries_table dan tabel pemetaan dalam model multi-nilai bernama timeseries_table::muti_model digunakan. Metrik dalam tabel pemetaan adalah cpu, memory, dan disktop.
Menanyakan data yang sumber datanya adalah host_01 menggunakan tabel pemetaan dalam model multi-nilai. Dalam contoh ini, host_id disimpan di _data_source.
SELECT * FROM `timeseries_table::muti_model` WHERE _data_source = "host_01" LIMIT 10;Menanyakan informasi tentang metrik dalam deret waktu yang nilai cpu-nya lebih besar dari 20.0 menggunakan tabel pemetaan dalam model multi-nilai.
SELECT cpu,memory,disktop FROM `timeseries_table::muti_model` WHERE cpu > 20.0 LIMIT 10;Menghitung nilai rata-rata cpu dan nilai maksimum disktop dari host yang memenuhi kondisi tag tertentu (region=hangzhou) pada tanggal 1 Januari 2022 menggunakan tabel pemetaan dalam model multi-nilai.
SELECT avg(cpu) as avg_cpu,max(disktop) as max_disktop FROM `timeseries_table::muti_mode` WHERE tag_value_at(_tags,"region") = "hangzhou" AND _time > 1640966400000000 AND _time < 1641052799000000 GROUP BY _data_source;
Metode penggunaan
Anda dapat menggunakan SQL untuk menanyakan data deret waktu dengan salah satu metode berikut. Saat menanyakan data deret waktu, Anda dapat melakukan operasi pada tabel pemetaan sesuai dengan kebutuhan bisnis Anda.
Gunakan SQL untuk menanyakan data deret waktu di konsol Tablestore. Untuk informasi lebih lanjut, lihat Gunakan Konsol Tablestore.
Gunakan SQL untuk menanyakan data deret waktu menggunakan SDK Tablestore. Untuk informasi lebih lanjut, lihat Gunakan SDK Tablestore.
Gunakan SQL untuk menanyakan data deret waktu menggunakan Java Database Connectivity (JDBC).
Gunakan JDBC untuk mengakses Tablestore. Untuk informasi lebih lanjut, lihat Gunakan JDBC untuk Mengakses Tablestore dengan Menjalankan Pernyataan SQL.
Gunakan Hibernate untuk menggunakan driver JDBC untuk Tablestore. Untuk informasi lebih lanjut, lihat Gunakan Hibernate untuk Menanyakan Data dengan Menjalankan Pernyataan SQL.
Gunakan MyBatis untuk menggunakan driver JDBC untuk Tablestore. Untuk informasi lebih lanjut, lihat Gunakan MyBatis untuk Menanyakan Data dengan Menjalankan Pernyataan SQL.
Gunakan driver Tablestore untuk Go untuk mengakses Tablestore. Untuk informasi lebih lanjut, lihat Gunakan Driver Tablestore untuk Go.
Gunakan SQL untuk menanyakan data deret waktu di CLI Tablestore. Untuk informasi lebih lanjut, lihat Kueri SQL.