建立預降採樣規則用於產生預降採樣資料。
引擎與版本
CREATE PREDOWNSAMPLE文法僅適用於時序引擎。無版本要求。
文法
create_predownsample_statement ::= CREATE PREDOWNSAMPLE time_interval
AGGREGATORS '('function_identifier ( ',' function_identifier) ')'
[ TTL time_interval ] ON table_identifier
time_interval ::= interval units使用說明
參數 | 說明 |
interval | 正整數,表示時間軸彙總的時間視窗的數值。 |
units | 時間單位,包括s(秒)、m(分鐘)、h(小時)、d(天)。 |
AGGREGATORS | 預降採樣支援的彙總函式,取值如下:
說明 預降採樣不支援使用avg函數,但可以通過count和sumFunction Compute平均值。如果存在覆蓋寫的情況,可能會出現資料重複相加導致平均值結果不精確。 |
function_identifier | 彙總函式名稱。 說明 一條建立語句中可以包括一個或者多個具有相同降採樣周期的彙總函式。也可以將多個彙總函式拆分成多條建立語句。 |
TTL | 設定預降採樣資料的有效期間。 說明 如果多個預降採樣規則設定了TTL,那麼取最大的TTL作為所有預降採樣規則的TTL。 |
table_identifier | 時序資料表名。 |
從預降採樣資料中查詢資料
預設情況下,降採樣查詢資料是從未經處理資料中進行查詢。如果要從預降採樣資料中查詢資料需要在查詢語句中使用Hint(/*+ PREDOWNSAMPLE */)。預降採樣的詳細資料,請參見預降採樣。
樣本
建立預採樣規則並設定資料有效期間為90天。
CREATE PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `max`) TTL `90d` ON sensor;從預降採樣資料中查詢資料,資料結果按照1小時進行降採樣。
SELECT /*+ PREDOWNSAMPLE */ SUM(temperature) FROM sensor WHERE time >= 1619076780000 AND time <= 1619076800000 SAMPLE BY 1h;