全部产品
Search
文档中心

Lindorm:Fungsi waktu umum

更新时间:Jun 24, 2025

Topik ini menjelaskan fungsi-fungsi waktu umum yang didukung oleh LindormTSDB SQL beserta contoh penggunaannya.

Mesin dan versi yang berlaku

Daftar fungsi waktu umum

Fungsi

Deskripsi

CURRENT_TIMESTAMP

Anda dapat memanggil fungsi ini untuk mendapatkan waktu sistem saat ini.

SUM

Anda dapat memanggil fungsi ini untuk menghitung jumlah nilai-nilai dalam kolom bidang.

AVG

Anda dapat memanggil fungsi ini untuk menghitung nilai rata-rata dari nilai-nilai dalam kolom bidang.

COUNT

Anda dapat memanggil fungsi ini untuk menghitung jumlah nilai-nilai dalam kolom bidang.

MIN

Anda dapat memanggil fungsi ini untuk menanyakan nilai minimum dari nilai-nilai dalam kolom bidang.

MAX

Anda dapat memanggil fungsi ini untuk menanyakan nilai maksimum dari nilai-nilai dalam kolom bidang.

FIRST

Anda dapat memanggil fungsi ini untuk menanyakan nilai pertama dari nilai-nilai dalam kolom bidang.

LAST

Anda dapat memanggil fungsi ini untuk menanyakan nilai terakhir dari nilai-nilai dalam kolom bidang.

PERCENTILE

Anda dapat memanggil fungsi ini untuk menanyakan persentil tertentu dari nilai-nilai dalam kolom bidang.

RATE

Anda dapat memanggil fungsi ini untuk menghitung kemiringan dari nilai-nilai dalam kolom bidang.

DELTA

Anda dapat memanggil fungsi ini untuk menghitung perbedaan antara setiap nilai dengan nilai pada baris sebelumnya dalam kolom bidang yang sama.

LATEST

Anda dapat memanggil fungsi ini untuk menanyakan N nilai terbaru dalam kolom bidang.

FORECAST

Anda dapat memanggil fungsi ini untuk meramalkan nilai Bidang dalam kolom tabel deret waktu.

ANOMALY_DETECT

Anda dapat memanggil fungsi ini untuk mendeteksi anomali dalam kolom bidang tertentu.

BINS

Anda dapat memanggil fungsi ini untuk melakukan binning fitur pada data dalam kolom bidang tertentu dari tabel deret waktu.

Persiapan data

Dalam topik ini, digunakan tabel sampel bernama sensor dengan skema berikut:

+-------------+-----------+------------+
| columnName  | typeName  | columnKind |
+-------------+-----------+------------+
| device_id   | VARCHAR   | TAG        |
| region      | VARCHAR   | TAG        |
| time        | TIMESTAMP | TIMESTAMP  |
| temperature | DOUBLE    | FIELD      |
| humidity    | DOUBLE    | FIELD      |
+-------------+-----------+------------+

Tabel ini diisi dengan data berikut:

+-----------+----------+---------------------------+-------------+-----------+
| device_id |  region  |           time            | temperature | humidity  |
+-----------+----------+---------------------------+-------------+-----------+
| F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 12.100000   | 45.000000 |
| F07A1260  | north-cn | 2021-04-22T15:33:10+08:00 | 13.200000   | 47.000000 |
| F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   | 46.000000 |
| F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 12.100000   | 51.000000 |
| F07A1261  | south-cn | 2021-04-22T15:51:21+08:00 | 13.200000   | 52.000000 |
| F07A1261  | south-cn | 2021-04-22T15:51:27+08:00 | 10.600000   | 53.000000 |
| F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 20.600000   | 55.000000 |
+-----------+----------+---------------------------+-------------+-----------+

Tabel sensor berisi dua deret waktu berikut:

  • Deret waktu 1 dengan tag device_id=F07A1260, region=north-cn yang mencakup bidang suhu dan kelembaban.

  • Deret waktu 2 dengan tag device_id=F07A1261, region=south-cn yang mencakup bidang suhu dan kelembaban.

null

Untuk informasi lebih lanjut tentang deret waktu, lihat Istilah.

Fungsi timestamp

CURRENT_TIMESTAMP

Ikhtisar

Fungsi ini digunakan untuk mendapatkan waktu sistem saat ini.

Sintaksis

CURRENT_TIMESTAMP
null
  • Tidak diperlukan parameter saat memanggil fungsi CURRENT_TIMESTAMP.

  • Timestamp yang dikembalikan oleh fungsi ini akurat hingga milidetik. Contoh: 2023-04-23T21:13:15.819+08:00.

  • Fungsi CURRENT_TIMESTAMP mengembalikan waktu sistem server tempat instance Lindorm berjalan. Pastikan bahwa data waktu yang dihasilkan oleh fungsi ini sesuai dengan kebutuhan bisnis Anda.

  • Hindari menggunakan timestamp yang dihasilkan oleh fungsi ini ketika menulis data dalam bisnis Anda. Direkomendasikan untuk menggunakan fungsi ini guna menghasilkan data uji dalam jumlah besar untuk keperluan pengujian dan pengembangan.

Contoh

Tambahkan satu baris data ke tabel sensor. Tag data adalah device_id=F07A1262, region=north-cn, dan timestamp data adalah waktu sistem saat ini ketika data ditulis ke tabel.

INSERT INTO sensor(device_id,region,time,temperature,humidity) VALUES ('F07A1262','north-cn',CURRENT_TIMESTAMP,19.9,42);

Fungsi agregasi

SUM

Ikhtisar

Fungsi ini digunakan untuk menghitung jumlah nilai dalam kolom bidang.

Sintaksis

SUM(field_name)
null

Fungsi SUM mengembalikan nilai DOUBLE atau BIGINT.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, hitung jumlah nilai dalam kolom suhu.

    SELECT device_id, region, time, sum(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 25.300000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 35.900000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Hitung secara individual jumlah nilai suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, sum(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 1970-01-01T08:00:00+08:00 | 35.900000   |
    | F07A1261  | south-cn | 1970-01-01T08:00:00+08:00 | 56.500000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Hitung jumlah nilai suhu yang dihasilkan oleh semua perangkat.

    SELECT sum(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00';

    Hasil berikut dikembalikan:

    +-------------+
    | temperature |
    +-------------+
    | 92.400000   |
    +-------------+

AVG

Ikhtisar

Fungsi ini digunakan untuk menghitung nilai rata-rata dari nilai-nilai dalam kolom bidang.

Sintaksis

AVG(field_name)
null

Fungsi AVG mengembalikan nilai DOUBLE.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, hitung nilai rata-rata dari nilai-nilai dalam kolom suhu.

    SELECT device_id, region, time, avg(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 12.650000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 11.966667   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Hitung secara individual nilai rata-rata suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, avg(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 1970-01-01T08:00:00+08:00 | 11.966667   |
    | F07A1261  | south-cn | 1970-01-01T08:00:00+08:00 | 14.125000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Hitung nilai rata-rata suhu yang dihasilkan oleh semua perangkat.

    SELECT avg(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00';

    Hasil berikut dikembalikan:

    +-------------+
    | temperature |
    +-------------+
    | 13.200000   |
    +-------------+

COUNT

Ikhtisar

Fungsi ini digunakan untuk menghitung jumlah nilai dalam kolom bidang.

Sintaksis

COUNT(field_name)
null

Fungsi COUNT mengembalikan nilai BIGINT.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, hitung jumlah nilai dalam kolom suhu untuk setiap interval.

    SELECT device_id, region, time, count(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           waktu           | suhu        |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 2           |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 3           |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 1           |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 1           |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Hitung secara individual jumlah nilai suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, count(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 1970-01-01T08:00:00+08:00 | 3           |
    | F07A1261  | south-cn | 1970-01-01T08:00:00+08:00 | 4           |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Hitung jumlah nilai suhu yang dihasilkan oleh semua perangkat.

    SELECT count(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00';

    Hasil berikut dikembalikan:

    +-------------+
    | temperature |
    +-------------+
    | 7           |
    +-------------+

Fungsi pemilihan

MIN

Ikhtisar

Fungsi ini digunakan untuk menanyakan nilai minimum dari nilai-nilai dalam kolom bidang.

Sintaksis

MIN(field_name)
null

Fungsi MIN mengembalikan nilai DOUBLE atau BIGINT.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, tanyakan nilai minimum dari nilai-nilai dalam kolom suhu untuk setiap interval.

    SELECT device_id, region, time, min(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 12.100000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 10.600000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Tanyakan secara individual nilai minimum suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, min(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:27+08:00 | 10.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Tanyakan nilai minimum suhu yang dihasilkan oleh semua perangkat.

    SELECT min(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00';

    Hasil berikut dikembalikan:

    +-------------+
    | temperature |
    +-------------+
    | 10.600000   |
    +-------------+

MAX

Ikhtisar

Fungsi ini digunakan untuk menanyakan nilai maksimum dari nilai-nilai dalam kolom bidang.

Sintaksis

MAX(field_name)
null

Fungsi MAX mengembalikan nilai DOUBLE atau BIGINT.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, tanyakan nilai maksimum dari nilai-nilai dalam kolom suhu untuk setiap interval.

    SELECT device_id, region, time, max(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 13.200000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 13.200000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Tanyakan secara individual nilai maksimum suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, max(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00 | 13.200000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Tanyakan nilai maksimum suhu yang dihasilkan oleh semua perangkat.

    SELECT max(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00';

    Hasil berikut dikembalikan:

    +-------------+
    | temperature |
    +-------------+
    | 20.600000   |
    +-------------+

FIRST

Ikhtisar

Fungsi ini digunakan untuk menanyakan nilai pertama dari nilai-nilai dalam kolom bidang.

Sintaksis

FIRST(field_name)
null

Fungsi FIRST mengembalikan data dengan tipe yang sama dengan tipe data dalam kolom bidang yang ditentukan.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, tanyakan nilai pertama dari nilai-nilai dalam kolom suhu untuk setiap interval.

    SELECT device_id, region, time, first(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 12.100000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 12.100000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Tanyakan secara individual nilai pertama suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, first(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 12.100000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 12.100000   |
    +-----------+----------+---------------------------+-------------+

LAST

Ikhtisar

Fungsi ini digunakan untuk menanyakan nilai terakhir dari nilai-nilai dalam kolom bidang.

Sintaksis

LAST(field_name)
null

Fungsi LAST mengembalikan data dengan tipe yang sama dengan tipe data dalam kolom bidang yang ditentukan.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, tanyakan nilai terakhir dari nilai-nilai dalam kolom suhu untuk setiap interval.

    SELECT device_id, region, time, last(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 13.200000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 10.600000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Tanyakan secara individual nilai terakhir suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, last(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+

PERCENTILE

Ikhtisar

Fungsi ini digunakan untuk menanyakan persentil tertentu dari nilai-nilai dalam kolom bidang.

Sintaksis

PERCENTILE(field_name,P)
null

Fungsi PERCENTILE mengembalikan nilai DOUBLE.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

P

Bilangan bulat atau bilangan titik mengambang. Nilai valid: 0 hingga 100. Nilai default: 50.

Contoh

  • Contoh 1: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, tanyakan persentil ke-90 dari nilai-nilai dalam kolom suhu untuk setiap interval.

    SELECT device_id, region, time, percentile(temperature, 90) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00 | 13.200000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00 | 13.200000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Tanyakan secara individual persentil ke-90 dari nilai suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, percentile(temperature, 90) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 1970-01-01T08:00:00+08:00 | 13.200000   |
    | F07A1261  | south-cn | 1970-01-01T08:00:00+08:00 | 20.600000   |
    +-----------+----------+---------------------------+-------------+

Fungsi konversi

RATE

Ikhtisar

Fungsi ini digunakan untuk menghitung kemiringan dari nilai-nilai dalam kolom bidang.

Asumsikan titik-titik data berikut disimpan dalam deret waktu: (t<sub>1</sub>,v<sub>1</sub>), (t<sub>2</sub>,v<sub>2</sub>) ... (t<sub>N</sub>,v<sub>N</sub>). Jika Anda menggunakan fungsi RATE untuk menghitung kemiringan titik-titik data tersebut, N-1 titik data dikembalikan, dengan timestamp dan nilai dihitung menggunakan rumus berikut:

2023-03-20_10-29-38

null

Parameter interval dalam rumus sebelumnya menunjukkan interval tertentu yang digunakan untuk menghitung kemiringan. Nilai parameter ini diukur dalam detik.

Sintaksis

RATE(field_name, 'interval units')
null
  • Fungsi RATE mengembalikan nilai DOUBLE.

  • Operator RATE harus digunakan secara terpisah dalam pernyataan SQL.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

interval units

Interval berdasarkan mana kemiringan dihitung. Nilai default: 1s. Unit valid: s (detik), m (menit), h (jam), dan d (hari).

Contoh

  • Contoh 1: Hitung secara individual kemiringan nilai suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261 dalam interval satu detik.

    SELECT device_id, region, time, rate(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00 | 0.110000    |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | -0.260000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:21+08:00 | 1.100000    |
    | F07A1261  | south-cn | 2021-04-22T15:51:27+08:00 | -0.433333   |
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 0.500000    |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Hitung secara individual kemiringan nilai suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261 dalam interval satu menit.

    SELECT device_id, region, time, rate(temperature, '1m') AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00 | 6.600000    |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | -15.600000  |
    | F07A1261  | south-cn | 2021-04-22T15:51:21+08:00 | 66.000000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:27+08:00 | -26.000000  |
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 30.000000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, hitung nilai rata-rata dari nilai-nilai dalam kolom suhu untuk setiap interval 20 detik. Terakhir, hitung kemiringan dari nilai rata-rata dalam interval satu menit.

    SELECT device_id, region, time, rate(avg(temperature), '1m') AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | -6.150000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 25.900000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 4: Operator RATE harus digunakan secara terpisah dalam pernyataan SQL. Jangan gunakan operator RATE dalam metode yang ditunjukkan dalam contoh berikut:

    • Contoh kesalahan 1:

      SELECT region, time, rate(temperature), rate(humidity) FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

      Hasil berikut dikembalikan:

      ERROR 9001 (0A000): UNSUPPORTED: latest/rate/delta must be the only aggregator in a single SQL statement
    • Contoh kesalahan 2:

      SELECT region, time, rate(temperature), latest(humidity) FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

      Hasil berikut dikembalikan:

      ERROR 9001 (0A000): UNSUPPORTED: latest/rate/delta must be the only aggregator in a single SQL statement

DELTA

Ikhtisar

Fungsi ini digunakan untuk menghitung perbedaan antara setiap nilai dengan nilai pada baris sebelumnya dalam kolom bidang yang sama.

Asumsikan titik-titik data berikut disimpan dalam deret waktu: (t<sub>1</sub>,v<sub>1</sub>), (t<sub>2</sub>,v<sub>2</sub>) ... (t<sub>N</sub>,v<sub>N</sub>). Jika Anda menggunakan fungsi DELTA, N-1 titik data berikut dikembalikan: (t<sub>2</sub>,v<sub>2</sub>-v<sub>1</sub>), (t<sub>3</sub>,v<sub>3</sub>-v<sub>2</sub>) ... (t<sub>N</sub>,v<sub>N</sub>-,v<sub>N-1</sub>).

Sintaksis

DELTA(field_name)
null
  • Fungsi DELTA mengembalikan nilai DOUBLE.

  • Operator DELTA harus digunakan secara terpisah dalam pernyataan SQL.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

Contoh

  • Contoh 1: Hitung secara individual perbedaan antara setiap nilai dengan nilai pada baris sebelumnya dalam kolom suhu yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, delta(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00 | 1.100000    |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | -2.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:21+08:00 | 1.100000    |
    | F07A1261  | south-cn | 2021-04-22T15:51:27+08:00 | -2.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 10.000000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Lakukan downsampling pada interval 20 detik untuk dua deret waktu yang masing-masing berisi data dari perangkat dengan ID F07A1260 dan F07A1261. Kemudian, hitung nilai rata-rata dari nilai-nilai dalam kolom suhu untuk setiap interval 20 detik. Terakhir, hitung perbedaan antara setiap nilai dengan nilai pada baris sebelumnya dalam kolom nilai rata-rata.

    SELECT device_id, region, time, delta(avg(temperature)) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 20s;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | -2.050000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:40+08:00 | 8.633333    |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Operator DELTA harus digunakan secara terpisah dalam pernyataan SQL. Hindari penggunaan operator DELTA dengan metode seperti yang ditunjukkan dalam contoh berikut.

    Contoh kesalahan:

    Error example: SELECT region, time, delta(temperature), rate(humidity) FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut diberikan:

    ERROR 9001 (0A000): UNSUPPORTED: latest/rate/delta must be the only aggregator in a single SQL statement

LATEST

Ikhtisar

Fungsi ini digunakan untuk menanyakan N nilai terbaru dalam kolom bidang.

Sintaksis

LATEST(field_name, N)
null
  • Fungsi LATEST mengembalikan data dengan tipe yang sama dengan tipe data dalam kolom bidang yang ditentukan.

  • Operator LATEST harus digunakan secara terpisah dalam pernyataan SQL.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

N

Bilangan bulat yang menentukan jumlah nilai terbaru yang ingin Anda tanyakan dalam kolom bidang. Nilai default parameter ini adalah 1, yang menunjukkan bahwa hanya nilai terbaru dalam kolom bidang yang ditanyakan.

Contoh

  • Contoh 1: Tanyakan secara individual nilai suhu terbaru yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, latest(temperature) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 20.600000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 2: Tanyakan secara individual dua nilai suhu terbaru yang dihasilkan oleh perangkat dengan ID F07A1260 dan F07A1261.

    SELECT device_id, region, time, latest(temperature, 2) AS temperature FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+
    | device_id |  region  |           time            | temperature |
    +-----------+----------+---------------------------+-------------+
    | F07A1261  | south-cn | 2021-04-22T15:51:27+08:00 | 10.600000   |
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00 | 20.600000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00 | 13.200000   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00 | 10.600000   |
    +-----------+----------+---------------------------+-------------+
  • Contoh 3: Operator LATEST harus digunakan secara terpisah dalam pernyataan SQL. Jangan gunakan operator LATEST dalam metode yang ditunjukkan dalam contoh berikut:

    Contoh kesalahan:

    SELECT region, time, latest(temperature), rate(humidity) FROM sensor WHERE time <= '2021-04-22T15:51:47+08:00' and time >= '2021-04-22T15:33:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    ERROR 9001 (0A000): UNSUPPORTED: latest/rate/delta must be the only aggregator in a single SQL statement

FORECAST

Prasyarat

Fungsi FORECAST bergantung pada Lindorm AI. Untuk menggunakan fungsi ini, Anda harus mengaktifkan Lindorm AI untuk instance terkait terlebih dahulu.

Ikhtisar

Fungsi ini digunakan untuk meramalkan nilai Bidang dalam kolom tabel deret waktu.

Sintaksis

FORECAST(field_name, model_name, options)
null

Fungsi FORECAST mengembalikan nilai DOUBLE.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

model_name

Nama model yang digunakan untuk meramalkan nilai.

null

Nilai parameter model_name adalah bertipe VARCHAR.

options

Opsi yang dapat Anda konfigurasikan untuk menyesuaikan hasil ramalan. Parameter ini bersifat opsional. Nilai parameter ini dalam format key1=value1[, key2=value2].

  • batch_size: Jumlah deret waktu berdasarkan mana inferensi dilakukan. Opsi ini bersifat opsional. Ketika jumlah deret waktu dalam cache mencapai nilai opsi ini, batch forecast dilakukan. Nilai default parameter ini adalah jumlah deret waktu dalam pelatihan. Nilai parameter ini adalah bertipe INTEGER.

  • step: Panjang langkah di mana hasil ramalan dikeluarkan. Opsi ini bersifat opsional. Nilai default parameter ini adalah nilai parameter PREDICTION_LENGTH yang Anda tentukan dalam pelatihan. Nilai parameter ini adalah bertipe INTEGER.

  • quantile_output: Persentil hasil ramalan keluaran. Opsi ini bersifat opsional. Pembelajaran mesin dalam database menyediakan array sebagai hasil ramalan untuk titik data dalam deret waktu berdasarkan model yang ditentukan. Anda dapat menentukan opsi quantile_output untuk memilih titik data dari array sebagai hasil akhir. Nilai parameter ini adalah bertipe DOUBLE. Nilai default: 0.5. Anda harus menetapkan nilai parameter ini berdasarkan algoritma yang digunakan untuk menghasilkan hasil.

    • Jika algoritma DeepAR digunakan, atur parameter ini ke nilai yang berkisar dari 0 hingga 1.

    • Jika algoritma TFT digunakan, atur parameter ini ke salah satu dari nilai berikut: 0.1, 0.5, atau 0.9.

Contoh

  • Contoh 1: Ramalkan nilai suhu dalam rentang waktu tertentu dalam tabel deret waktu bernama sensor.

    SELECT device_id, region, `time`, forecast(temperature, forecast_model) AS forecast_result FROM sensor WHERE `time` >= '2022-01-01T00:00:00+08:00' and `time` < '2022-01-01T00:01:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+------------------+
    | device_id |  region  |           time            |  forecast_result |
    +-----------+----------+---------------------------+------------------+
    | F07A1260  | north-cn | 2022-01-01T00:00:00+08:00 |  12.40307807     |
    | F07A1260  | north-cn | 2022-01-01T00:00:20+08:00 |  11.36715841     |
    | F07A1260  | north-cn | 2022-01-01T00:00:40+08:00 |  10.12969923     |
    | F07A1261  | south-cn | 2022-01-01T00:00:00+08:00 |  26.51369649     |
    | F07A1261  | south-cn | 2022-01-01T00:00:20+08:00 |  25.54403301     |
    | F07A1261  | south-cn | 2022-01-01T00:00:40+08:00 |  24.46405267     |
    +-----------+----------+---------------------------+------------------+
  • Contoh 2: Ramalkan nilai suhu dalam rentang waktu tertentu dalam tabel sensor dengan opsi step diatur ke 2 dan opsi quantile_output diatur ke 0.9.

    SELECT device_id, region, `time`, forecast(temperature, forecast_model, 'step=2,quantile_output=0.9') AS forecast_result FROM sensor WHERE `time` >= '2022-01-01T00:00:00+08:00' and `time` < '2022-01-01T00:01:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+------------------+
    | device_id |  region  |           time            |  forecast_result |
    +-----------+----------+---------------------------+------------------+
    | F07A1260  | north-cn | 2022-01-01T00:00:00+08:00 |  13.12353792     |
    | F07A1260  | north-cn | 2022-01-01T00:00:20+08:00 |  12.14833554     |
    | F07A1261  | south-cn | 2022-01-01T00:00:00+08:00 |  26.73869304     |
    | F07A1261  | south-cn | 2022-01-01T00:00:20+08:00 |  24.92990853     |
    +-----------+----------+---------------------------+------------------+

ANOMALY_DETECT

Ikhtisar

Fungsi ini digunakan untuk mendeteksi anomali dalam kolom bidang tertentu.

Sintaksis

ANOMALY_DETECT(field_name, [algo_name | model_name], options)
null

Fungsi ANOMALY_DETECT mengembalikan nilai BOOLEAN.

Parameter

Parameter

Deskripsi

field_name

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

algo_name

Nama algoritma yang digunakan untuk mendeteksi anomali. Algoritma deteksi anomali online yang dikembangkan oleh Akademi DAMO didukung.

  • esd: algoritma yang berlaku untuk anomali berpuncak, seperti lonjakan dalam kurva pemantauan dan skenario di mana sejumlah kecil titik data secara signifikan berbeda dari titik data lainnya.

  • nsigma: algoritma yang sederhana dan mudah untuk menganalisis penyebab anomali.

  • ttest: algoritma yang digunakan untuk mengidentifikasi apakah metrik terkait data deret waktu abnormal karena perubahan dalam nilai rata-rata.

  • istl-esd: algoritma yang berlaku untuk mendeteksi anomali dalam data periodik.

null

Parameter algo_identifier berlaku untuk skenario di mana pembelajaran mesin dalam database tidak diaktifkan dan anomali terkait data deret waktu harus dideteksi.

model_name

Nama model yang digunakan untuk meramalkan nilai.

null
  • Nilai parameter model_name adalah bertipe VARCHAR.

  • Parameter model_name berlaku untuk skenario di mana pembelajaran mesin dalam database diaktifkan dan anomali terkait data deret waktu harus dideteksi. Untuk informasi lebih lanjut, lihat Aktivasi Lindorm AI.

options

Opsi yang digunakan untuk menyesuaikan efek deteksi. Parameter ini bersifat opsional. Nilai parameter ini dalam format key1=value1, key2=value2. Untuk informasi lebih lanjut, lihat Deteksi anomali deret waktu.

Contoh

  • Contoh 1: Gunakan algoritma ESD untuk mendeteksi anomali dalam data suhu dalam rentang waktu tertentu dalam tabel deret waktu bernama sensor.

    SELECT device_id, region, time, anomaly_detect(temperature, 'esd') AS detect_result FROM sensor WHERE time >= '2022-01-01T00:00:00+08:00' and time < '2022-01-01T00:01:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+---------------+
    | device_id |  region  |           time            | detect_result |
    +-----------+----------+---------------------------+---------------+
    | F07A1260  | north-cn | 2022-01-01T00:00:00+08:00 | true          |
    | F07A1260  | north-cn | 2022-01-01T00:00:20+08:00 | false         |
    | F07A1260  | north-cn | 2022-01-01T00:00:40+08:00 | true          |
    | F07A1261  | south-cn | 2022-01-01T00:00:00+08:00 | false         |
    | F07A1261  | south-cn | 2022-01-01T00:00:20+08:00 | false         |
    | F07A1261  | south-cn | 2022-01-01T00:00:40+08:00 | false         |
    +-----------+----------+---------------------------+---------------+
  • Contoh 2: Gunakan algoritma ESD untuk mendeteksi anomali dalam data suhu perangkat dengan ID F07A1260 dalam rentang waktu tertentu dalam tabel sensor.

    SELECT device_id, region, time, anomaly_detect(temperature, 'esd') AS detect_result FROM sensor WHERE device_id in ('F07A1260') and time >= '2022-01-01T00:00:00+08:00' and time < '2022-01-01T00:01:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+---------------+
    | device_id |  region  |           time            | detect_result |
    +-----------+----------+---------------------------+---------------+
    | F07A1260  | north-cn | 2022-01-01T00:00:00+08:00 | true          |
    | F07A1260  | north-cn | 2022-01-01T00:00:20+08:00 | false         |
    | F07A1260  | north-cn | 2022-01-01T00:00:40+08:00 | true          |
    +-----------+----------+---------------------------+---------------+
  • Contoh 3: Gunakan algoritma ESD untuk mendeteksi anomali pada data suhu perangkat dengan ID F07A1260 dalam rentang waktu tertentu di tabel sensor. Atur opsi lenHistoryWindow menjadi 30 dan opsi maxAnomalyRatio menjadi 0,1.

    SELECT device_id, region, time, anomaly_detect(temperature, 'esd', 'lenHistoryWindow=30,maxAnomalyRatio=0.1') AS detect_result FROM sensor where device_id in ('F07A1260') and time >= '2022-01-01T00:00:00+08:00' and time < '2022-01-01T00:01:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+---------------+
    | device_id |  region  |           time            | detect_result |
    +-----------+----------+---------------------------+---------------+
    | F07A1260  | north-cn | 2022-01-01T00:00:00+08:00 | false         |
    | F07A1260  | north-cn | 2022-01-01T00:00:20+08:00 | false         |
    | F07A1260  | north-cn | 2022-01-01T00:00:40+08:00 | true          |
    +-----------+----------+---------------------------+---------------+
  • Contoh 4: Gunakan model deteksi anomali yang dibuat dalam fitur pembelajaran mesin dalam database untuk mendeteksi anomali dalam data suhu dalam rentang waktu tertentu dalam tabel sensor.

    SELECT device_id, region, `time`, raw(temperature) as temperature, anomaly_detect(temperature, ad_model) AS detect_result FROM sensor WHERE time >= '2022-01-01T00:00:00+08:00' and time < '2022-01-01T00:01:00+08:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+---------------------------+-------------+---------------+
    | device_id |  region  |           time            | temperature | detect_result |
    +-----------+----------+---------------------------+-------------+---------------+
    | F07A1260  | north-cn | 2022-01-01T00:00:00+08:00 | 59.100000   | true          |
    | F07A1260  | north-cn | 2022-01-01T00:00:20+08:00 | 13.200000   | false         |
    | F07A1260  | north-cn | 2022-01-01T00:00:40+08:00 | 64.600000   | true          |
    | F07A1261  | south-cn | 2022-01-01T00:00:00+08:00 | 12.100000   | false         |
    | F07A1261  | south-cn | 2022-01-01T00:00:20+08:00 | 13.200000   | false         |
    | F07A1261  | south-cn | 2022-01-01T00:00:40+08:00 | 10.600000   | false         |
    +-----------+----------+---------------------------+-------------+---------------+

BINS

Ikhtisar

Fungsi ini digunakan untuk melakukan bucketing fitur pada data dalam kolom bidang tertentu dari tabel deret waktu. Bucketing fitur juga dikenal sebagai diskritisasi dan merupakan teknik yang digunakan untuk pra-pemrosesan data.

Sintaksis

BINS(field_name, options)
null

Fungsi BINS mengembalikan nilai dalam format VARCHAR.

Parameter

Parameter

Wajib

Deskripsi

field_name

Ya

Nama kolom bidang.

null

Data dalam kolom bidang yang ditentukan tidak boleh bertipe VARCHAR atau BOOLEAN.

options

Tidak

Kebijakan binning fitur dan mode keluaran. Tentukan nilai parameter ini dalam format key1=value1, key2=value2.

Contoh

  • Contoh 1: Lakukan bucketing fitur pada data suhu dalam rentang waktu tertentu dalam tabel deret waktu bernama sensor.

    SELECT device_id, region, time, bins(temperature) AS temperature_bin FROM sensor WHERE time >= '2021-04-22 00:00:00' AND time < '2022-04-23 00:01:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+--------------------------------+--------------------+
    | device_id |  region  |           time                 |  temperature_bin   |
    +-----------+----------+--------------------------------+--------------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00      |    [10.60,12.10)   |
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00      |    [12.10,13.20]   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00      |    [10.60,10.60)   |
    | F07A1261  | south-cn | 2021-04-22T15:51:20+08:00      |    [10.60,12.10)   |
    | F07A1261  | south-cn | 2021-04-22T15:51:21+08:00      |    [12.10,13.20)   |
    | F07A1261  | south-cn | 2021-04-22T15:51:27+08:00      |    [10.60,10.60)   |
    | F07A1261  | south-cn | 2021-04-22T15:51:47+08:00      |    [13.20,20.60]   |
    +-----------+-----------+-------------------------------+--------------------+
  • Contoh 2: Lakukan bucketing fitur pada data suhu perangkat dengan ID F07A1260 dalam rentang waktu tertentu dalam tabel deret waktu bernama sensor.

    SELECT device_id, region, time, bins(temperature) AS temperature_bin FROM sensor WHERE device_id in ('F07A1260') AND time >= '2021-04-22 00:00:00' AND time < '2022-04-23 00:01:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+--------------------------------+--------------------+
    | device_id |  region  |           time                 |  temperature_bin   |
    +-----------+----------+--------------------------------+--------------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00      |    [10.60,12.10)   |
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00      |    [12.10,13.20]   |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00      |    [10.60,10.60)   |
    +-----------+----------+--------------------------------+--------------------+
  • Contoh 3: Lakukan bucketing fitur pada data suhu perangkat dengan ID F07A1260 dalam rentang waktu tertentu dalam tabel deret waktu bernama sensor. Selain itu, tentukan opsi n_bins menjadi 2, opsi output_type menjadi ordinal, dan opsi strategy menjadi uniform.

    SELECT device_id, region, time, bins(temperature, 'n_bins=2, output_type=ordinal, strategy=uniform') AS temperature_bin FROM sensor WHERE device_id in ('F07A1260') AND time >= '2021-04-22 00:00:00' AND time < '2022-04-23 00:01:00' sample by 0;

    Hasil berikut dikembalikan:

    +-----------+----------+--------------------------------+--------------------+
    | device_id |  region  |           time                 |  temperature_bin   |
    +-----------+----------+--------------------------------+--------------------+
    | F07A1260  | north-cn | 2021-04-22T15:33:00+08:00      |  1                 |
    | F07A1260  | north-cn | 2021-04-22T15:33:10+08:00      |  1                 |
    | F07A1260  | north-cn | 2021-04-22T15:33:20+08:00      |  0                 |
    +-----------+----------+--------------------------------+--------------------+