日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

預(yù)降采樣可以在數(shù)據(jù)寫入時就按指定時間粒度對數(shù)據(jù)進(jìn)行預(yù)計算并單獨(dú)存儲,降采樣查詢時可以自動查詢匹配到的預(yù)降采樣數(shù)據(jù),以降低訪問延遲。本文介紹預(yù)降采樣的概念,創(chuàng)建和管理預(yù)降采樣規(guī)則的方法,查詢預(yù)降采樣數(shù)據(jù)的方法,以及預(yù)降采樣的最佳實(shí)踐。

前提條件

時序引擎版本為3.4.19以上。

說明

如何查看或升級時序引擎版本,請參見時序引擎版本說明升級小版本。

功能介紹

預(yù)降采樣

預(yù)降采樣是一種預(yù)計算的方法。在數(shù)據(jù)寫入時根據(jù)配置的預(yù)降采樣規(guī)則將數(shù)據(jù)降低精度后單獨(dú)存儲,查詢時按查詢條件中指定的降采樣精度自動查詢最接近預(yù)降采樣精度的數(shù)據(jù),然后交由執(zhí)行引擎進(jìn)行后續(xù)處理,以減少實(shí)時查詢需要計算的數(shù)據(jù)量,降低訪問延遲。

與連續(xù)查詢相比,預(yù)降采樣主要有以下優(yōu)勢:

  • 寫入即可見,無需連續(xù)查詢的執(zhí)行等待時間。

  • 性能高,對于寫入性能無影響,寫入時實(shí)時轉(zhuǎn)存數(shù)據(jù)。

  • 預(yù)降采樣數(shù)據(jù)和原始數(shù)據(jù)存儲在同一張表中,預(yù)降采樣查詢時自動匹配最佳規(guī)則的數(shù)據(jù),規(guī)則不匹配時,自動切換到原始數(shù)據(jù)查詢。

預(yù)降采樣規(guī)則

預(yù)降采樣規(guī)則定義了預(yù)降采樣的時間粒度和數(shù)據(jù)的聚合方式。例如,假設(shè)1分鐘產(chǎn)生一條原始數(shù)據(jù),預(yù)降采樣規(guī)則可以定義按1小時數(shù)據(jù)的平均值進(jìn)行預(yù)降采樣。預(yù)降采樣規(guī)則分為數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則和表級別預(yù)降采樣規(guī)則,它們都可以實(shí)現(xiàn)預(yù)降采樣,但有部分區(qū)別,具體請參見下圖。

image

創(chuàng)建預(yù)降采樣規(guī)則

重要

預(yù)降采樣規(guī)則對于之前已經(jīng)寫入的數(shù)據(jù)不生效。

創(chuàng)建表級別的預(yù)降采樣規(guī)則(SQL方式)

示例

  • 設(shè)置預(yù)降采樣精度為1小時,并對預(yù)降采樣周期執(zhí)行sum和max預(yù)計算。

    CREATE PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `max`) ON sensor;
  • 設(shè)置預(yù)降采樣的數(shù)據(jù)有效期(TTL)為90天。

    CREATE PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `max`) TTL `90d` ON sensor;

語法參考

CREATE PREDOWNSAMPLE

創(chuàng)建數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則(API方式)

請求路徑和方法

請求路徑

請求方法

描述

/api/database

  • POST

  • PUT

為指定數(shù)據(jù)庫創(chuàng)建預(yù)降采樣規(guī)則。

如果數(shù)據(jù)庫已經(jīng)存在(例如默認(rèn)數(shù)據(jù)庫default),請使用PUT方法來更新預(yù)降采樣規(guī)則。

如果想在創(chuàng)建數(shù)據(jù)庫時,同時創(chuàng)建預(yù)降采樣規(guī)則,請使用POST方法。

請求參數(shù)

名稱

是否必需

描述

name

數(shù)據(jù)庫名稱。 例如:default。

downsampleRules

預(yù)降采樣規(guī)則列表,格式為JSON。每次更新規(guī)則時為全量更新。

預(yù)降采樣規(guī)則參數(shù)

名稱

是否必需

描述

舉例

aggregator

聚合函數(shù)。

取值:sum、count、max、min、first、last、median。

關(guān)于聚合函數(shù)的詳情,請參見CREATE PREDOWNSAMPLE

重要
  • 不支持直接使用avg。如需計算平均值,請使用count和sum,時序引擎會自動匹配count和sum的值進(jìn)行計算。

  • 由于實(shí)現(xiàn)原理的限制,在覆蓋寫的場景下,sum/count算子可能會出現(xiàn)數(shù)據(jù)重復(fù)累加導(dǎo)致結(jié)果不精確,在無覆蓋寫的場景下可以放心使用。

"aggregator": "sum"

intervals

預(yù)降采樣的時間粒度列表,聚合時間窗口列表。支持的單位:s代表秒,m代表分鐘,h代表小時,d代表天。

"intervals": [ "10m","1h" ],表示按10分鐘和1小時分別進(jìn)行預(yù)降采樣。

請求示例

PUT /api/database

{
    "name": "default",
    "downsampleRules": {
        "rules": [
            {
                "aggregator": "sum",
                "intervals": [
                    "1m",
                    "1h"
                ]
            },
            {
                "aggregator": "max",
                "intervals": [
                    "1m",
                    "1h"
                ]
            }
        ]
    }
}

響應(yīng)說明

響應(yīng)狀態(tài)碼為200。

查詢預(yù)降采樣規(guī)則

數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則和表級別的預(yù)降采樣規(guī)則的查詢方法不同。數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則需要通過API查詢,表級別的預(yù)降采樣規(guī)則需要通過SQL查詢。

查詢表級別的預(yù)降采樣規(guī)則(SQL方式)

示例

  • 查詢數(shù)據(jù)庫所有的預(yù)降采樣規(guī)則。

    SHOW PREDOWNSAMPLES;
  • 查詢指定數(shù)據(jù)表sensor的預(yù)降采樣規(guī)則。

    SHOW PREDOWNSAMPLES ON sensor;

語法參考

SHOW PREDOWNSAMPLES

查詢數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則(API方式)

請求路徑和方法

請求路徑

請求方法

描述

/api/database

GET

查詢已經(jīng)創(chuàng)建的預(yù)降采樣規(guī)則。

返回示例

[{
    "name": "default",
    "downsampleRules": {
        "rules": [
            {
                "aggregator": "sum",
                "intervals": [
                    "1m",
                    "1h"
                ]
            },
            {
                "aggregator": "max",
                "intervals": [
                    "1m",
                    "1h"
                ]
            }
        ]
    }
}]

響應(yīng)說明

響應(yīng)狀態(tài)碼為204。

刪除預(yù)降采樣規(guī)則

數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則和表級別的預(yù)降采樣規(guī)則的刪除方法不同。數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則需要通過API刪除,表級別的預(yù)降采樣規(guī)則需要通過SQL刪除。

重要

刪除預(yù)降采樣規(guī)則后,已經(jīng)生效的預(yù)降采樣數(shù)據(jù)不會立即被刪除,但在查詢時不會命中已經(jīng)刪除的預(yù)降采樣數(shù)據(jù)。預(yù)降采樣的數(shù)據(jù)會在數(shù)據(jù)過期后(即超過TTL后)自動刪除。

刪除表級別的預(yù)降采樣規(guī)則(SQL方式)

示例

DROP PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `max`) ON sensor;

語法參考

DROP PREDOWNSAMPLE

刪除數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則(API方式)

刪除數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則,請求路徑、請求方法、請求參數(shù)和響應(yīng)說明,與創(chuàng)建數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則相同,區(qū)別為需要將downsampleRules的值置為空。請求路徑等詳細(xì)信息,請參見創(chuàng)建數(shù)據(jù)庫級別的預(yù)降采樣規(guī)則(API方式)。

請求示例

PUT /api/database

{
    "name": "default",
    "downsampleRules": {
    }
}

查詢預(yù)降采樣數(shù)據(jù)

預(yù)降采樣數(shù)據(jù)查詢的匹配原則

  • 當(dāng)同時存在數(shù)據(jù)庫級別規(guī)則和表級別規(guī)則時,預(yù)降采樣查詢數(shù)據(jù)時優(yōu)先匹配表級別規(guī)則。

  • 當(dāng)查詢請求指定的降采樣粒度與預(yù)降采樣數(shù)據(jù)的時間粒度不能精確匹配時,時序引擎會自動查詢最優(yōu)的預(yù)降采樣粒度。推薦設(shè)置預(yù)降采樣時間粒度為1m、10m、1h、1d,可以滿足絕大多數(shù)的降采樣查詢場景。

    說明

    最優(yōu)的預(yù)降采樣粒度是指能夠整除查詢請求的降采樣粒度的最大值。例如,預(yù)降采樣數(shù)據(jù)的時間粒度有1m、5m、8m和15m,查詢請求的降采樣粒度為10m,則最優(yōu)預(yù)降采樣粒度為5m。

  • 當(dāng)沒有滿足條件的預(yù)降采樣時間粒度時,從原始數(shù)據(jù)中進(jìn)行降采樣查詢。

查詢方法

通過SQL或者兼容時間序列數(shù)據(jù)庫TSDB的接口都可以查詢預(yù)降采樣數(shù)據(jù)。推薦使用SQL查詢。如果是已有的openTSDB應(yīng)用或時間序列數(shù)據(jù)庫TSDB應(yīng)用,可以選擇TSDB兼容查詢。

SQL查詢預(yù)降采樣數(shù)據(jù)

默認(rèn)情況下,降采樣查詢數(shù)據(jù)是從原始數(shù)據(jù)中進(jìn)行查詢。如果要從預(yù)降采樣數(shù)據(jù)中查詢數(shù)據(jù)需要在查詢語句中使用Hint(/*+ PREDOWNSAMPLE */)。

SELECT /*+ PREDOWNSAMPLE */ sum(temperature) from sensor
WHERE time >= 1619074800000 AND time <= 1619085600000
SAMPLE BY 1h;

TSDB兼容查詢預(yù)降采樣數(shù)據(jù)

兼容時間序列數(shù)據(jù)庫TSDB的接口支持通過API多值查詢、API單值查詢、SDK查詢?nèi)N方式查詢預(yù)降采樣數(shù)據(jù)。

SDK多值查詢預(yù)降采樣數(shù)據(jù)

查詢降采樣數(shù)據(jù)時,需要在MultiFieldSubQuery Builder設(shè)定downsampleDataSource參數(shù)。

示例

long startTime = 1619074800000L;
long endTime = 1619085600000L;
final String metric = "wind";
final String field = "speed";
MultiFieldSubQueryDetails fieldSubQueryDetails = MultiFieldSubQueryDetails
        .field(field)
        .aggregator(Aggregator.SUM)
        .downsample("1h-sum")
        .build();
MultiFieldSubQuery subQuery = MultiFieldSubQuery
        .metric(metric)
        .fieldsInfo(fieldSubQueryDetails)
        // 從預(yù)降采樣查詢
        .downsampleDataSource(DownsampleDataSource.DOWNSAMPLE)
        .build();
MultiFieldQuery query = MultiFieldQuery.
        start(startTime).
        end(endTime).
        sub(subQuery).
        build();
List<MultiFieldQueryResult> result = tsdb.multiFieldQuery(query); 

參數(shù)說明

DownsampleDataSource 參數(shù)的取值說明:

  • DOWNSAMPLE:預(yù)降采樣數(shù)據(jù)查詢。

  • RAW:原始數(shù)據(jù)查詢。如果參數(shù)沒有被指定,默認(rèn)為RAW。

SDK多值的更多內(nèi)容,請參見SDK多值讀取。

API多值查詢預(yù)降采樣數(shù)據(jù)

使用API進(jìn)行多值查詢時,添加downsampleSource參數(shù)并定義參數(shù)為downsample,即可查詢預(yù)降采樣數(shù)據(jù)。具體操作,請參見多值數(shù)據(jù)查詢

請求路徑和方法

請求路徑

請求方法

描述

/api/mquery

GET

查詢預(yù)降采樣數(shù)據(jù)。

請求參數(shù)

名稱

是否必須

描述

示例

downsampleSource

指定查詢數(shù)據(jù)源。取值:

  • downsample:預(yù)降采樣數(shù)據(jù)。

  • raw:原始數(shù)據(jù)。默認(rèn)值。

downsample

請求示例

POST /api/mquery

{
  "start": 1346846400000, 
  "end": 1346846402000,
    "queries": [
        {
            "downsampleDataSource" : "downsample",
            "metric": "wind",
            "fields" : [
                {
                    "field" : "speed",
                    "aggregator" : "none",
                    "downsample" : "1h-sum"
                }
            ],
                      "tags":{
                    "sensor":"IOTE_8859_0002"
                  }
        }
    ]
}

預(yù)降采樣的最佳配置

秒級采樣頻率場景

對于秒級采樣頻率的場景,推薦配置1m、1h、1d粒度的預(yù)降采樣規(guī)則來滿足任意分鐘、任意小時、任意天級別的降采樣查詢需求。

預(yù)降采樣規(guī)則的示例

配置sum、count、min、max4種常用聚合函數(shù)在1m、1h、1d粒度的預(yù)降采樣規(guī)則。

CREATE PREDOWNSAMPLE `1m` AGGREGATORS (`sum`, `count`, `min`, `max`) ON sensor;
CREATE PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `count`, `min`, `max`) ON sensor;
CREATE PREDOWNSAMPLE `1d` AGGREGATORS (`sum`, `count`, `min`, `max`) ON sensor;

預(yù)降采樣查詢的示例

  • 基于分鐘粒度的預(yù)降采樣規(guī)則,滿足任意分鐘級別的降采樣查詢。

    SELECT /*+ PREDOWNSAMPLE */ sum(temperature), max(temperature) FROM sensor
    WHERE time >= 1619074800000 AND time <= 1619085600000
    SAMPLE BY <N>m;
  • 基于小時粒度的預(yù)降采樣規(guī)則,滿足任意小時級別的降采樣查詢。

    SELECT /*+ PREDOWNSAMPLE */ sum(temperature), max(temperature) FROM sensor
    WHERE time >= 1619074800000 AND time <= 1619085600000
    SAMPLE BY <N>h;
  • 基于天粒度的預(yù)降采樣規(guī)則,滿足任意天級別的降采樣查詢。

    SELECT /*+ PREDOWNSAMPLE */ sum(temperature), max(temperature) FROM sensor
    WHERE time >= 1619074800000 AND time <= 1619600400000
    SAMPLE BY <N>d;

分鐘級采樣頻率場景

對于分鐘級采樣頻率的場景,推薦配置1h、1d粒度的預(yù)降采樣規(guī)則來滿足任意小時、任意天級別的降采樣查詢需求。

預(yù)降采樣規(guī)則的示例

配置sum、count、min、max4種常用聚合函數(shù)在1h、1d粒度的預(yù)降采樣規(guī)則。

CREATE PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `count`, `min`, `max`) ON sensor;
CREATE PREDOWNSAMPLE `1d` AGGREGATORS (`sum`, `count`, `min`, `max`) ON sensor;

預(yù)降采樣查詢的示例

  • 基于小時粒度的預(yù)降采樣規(guī)則,滿足任意小時級別的降采樣查詢。

    SELECT /*+ PREDOWNSAMPLE */ sum(temperature), max(temperature) FROM sensor
    WHERE time >= 1619074800000 AND time <= 1619085600000
    SAMPLE BY <N>h;
  • 基于天粒度的預(yù)降采樣規(guī)則,滿足任意天級別的降采樣查詢。

    SELECT /*+ PREDOWNSAMPLE */ sum(temperature), max(temperature) FROM sensor
    WHERE time >= 1619074800000 AND time <= 1619600400000
    SAMPLE BY <N>d;