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

TS

TairTS是基于Redis Module開發的時序數據結構,提供低時延、高并發的內存讀寫訪問,及快速地過濾、聚合查詢功能,集存儲與計算為一體,在簡化了處理時序數據流程的同時,大幅度提高了性能。

TairTS簡介

相比RedisTimeSeries,TairTS提供了更豐富的功能:

  • 通過Pkey(額外一層Hash結構)結構,輕松實現Pkey級別(多時間線)聚合查詢。

    例如您可以在foo(Pkey)中創建以各項指標名稱與設備ID命名的Skey,例如temperature:1、pressure:1、distance:1等,可通過TairTS自帶的EXTS.S.MRANGE命令輕松獲取設備ID為1的自定義監控信息,而使用RedisTimeSeries則需要在業務邏輯代碼中嵌入大量數據聚合運算才能實現該功能。

    圖 1. TairTS與RedisTS數據結構對比圖TairTS數據結構圖

    TairTS數據結構解析:

    • Pkey(一組時間線):TairTS數據結構,可包含多個Skey。

    • Skey(一條時間線):可包含多個固定容量的Chunk,每個Skey可設置不同的Label(標簽),可通過Label在海量數據中快速過濾目標Skey。

    • Chunk(數據塊):可存儲多個DataPoint。

      • Chunk的容量支持自定義,最多包含256個DataPoint。

      • Chunk為最小的過期單元,即單個Chunk中所有Datapoint都過期后才會刪除該Chunk。

    • DataPoint(時序數據):包含一個時間戳和一個value數據(double類型)。

  • 支持降采樣、屬性過濾、分批查詢、多種數值函數等條件下的聚合操作,將批量查詢與聚合計算集成到單條命令中,減少網絡交互,實現毫秒級響應。

  • 支持對歷史時序數據的更新或累加。

  • 支持時間線級別的TTL設定,保證每條時間線都可以按時間窗口自動滾動。

  • 采用高效的Gorilla壓縮算法與特定存儲,極大降低存儲成本。

典型場景

  • 監控數據的存儲與計算

  • APM秒級監控

  • IoT(物聯網)數據分析與處理

  • 限流風控

  • 熱點消息的緩存

  • 時間窗口函數

最佳實踐

基于TairTS實現秒級監控

前提條件

實例為Tair內存型

當實例為內存型(兼容Redis 5.0)時,小版本需要為1.7.20及以上。

說明

最新小版本將提供更豐富的功能與穩定的服務,建議將實例的小版本升級到最新,具體操作請參見升級小版本。如果您的實例為集群實例或讀寫分離架構,請將代理節點的小版本也升級到最新,否則可能出現命令無法識別的情況。

注意事項

  • 操作對象為Tair實例中的TairTS數據。

  • TairTS的優勢為實時、高并發的寫入與查詢性能,缺陷為存儲容量有限,請合理設置TTL,及時淘汰過期數據。

  • 為節省內存空間,關于設置CHUNK_SIZE的建議如下:

    • 若Skey(時間線)的平均數據點大于5,000個,設置CHUNK_SIZE為256(默認值)。

    • 若Skey(時間線)的平均數據點小于5,000個,設置CHUNK_SIZE為平均數據點個數 / 20。例如某Skey的平均數據點為1,000,可以設置CHUNK_SIZE為50。

重要

Breaking Change公告:

2024年07月22日發布Tair內存型(兼容Redis 6.0)24.7.0.0版本,該版本中新增了ts-auto-del-empty-skey-enable參數,默認為yes,表示當Skey中的所有數據點都過期時,會自動刪除Skey。但在Tair內存型(兼容Redis 6.0)24.7.0.0之前的版本中,默認不會刪除數據點已過期的Skey。

在Tair內存型(兼容Redis 6.0)實例使用TairTS前,建議將實例升級至24.7.0.0及以上版本,并確認、手動調整ts-auto-del-empty-skey-enable參數的策略,避免因默認行為的改變對業務產生影響。

命令列表

表 1. TairTS命令

類型

命令

語法

說明

基礎寫操作

EXTS.P.CREATE

EXTS.P.CREATE Pkey

創建一個新的Pkey(TairTS數據結構),若Pkey已存在則創建失敗。

EXTS.S.CREATE

EXTS.S.CREATE Pkey Skey [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 label2 val2 ...]

在指定的Pkey中創建一個Skey,若Pkey不存在則會自動創建,若Skey已經存在則創建失敗。

說明

您可以在創建Skey時設置其相關屬性,例如過期時間、是否開啟壓縮等。

EXTS.S.ALTER

EXTS.S.ALTER Pkey Skey [DATA_ET time]

修改指定Skey的元數據信息,當前僅支持修改過期時間(DATA_ET)。

EXTS.S.ADD

EXTS.S.ADD Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

向Skey中插入一條Datapoint數據。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

EXTS.S.MADD

EXTS.S.MADD Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

在指定Pkey的多個Skey分中別插入一條Datapoint數據。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

EXTS.S.INCRBY

EXTS.S.INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

向Skey中插入一條Datapoint數據,該命令中的value將與Skey中最近Datapoint的value值相加實現遞增,也可以指定該命令中的value為負數實現遞減。若Pkey或Skey不存在則會自動創建,默認初始值為0,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

EXTS.S.MINCRBY

EXTS.S.MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

在指定Pkey的多個Skey分別插入一條Datapoint數據,該命令中的value將分別與各個Skey中最近Datapoint的value值相加實現遞增,也可以指定該命令中的value為負數實現相減。若Pkey或Skey不存在則會自動創建,默認初始值為0,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

EXTS.S.DEL

EXTS.S.DEL Pkey Skey

刪除指定Pkey中的單個Skey,并刪除目標Skey中所有的Datapoint數據。

基礎讀操作

EXTS.S.GET

EXTS.S.GET Pkey Skey

查詢指定Skey中最新的Datapoint數據。

EXTS.S.INFO

EXTS.S.INFO Pkey Skey

查詢指定Skey的元數據信息,包含Datapoint數量、最近Datapoint的時間戳與value值、Skey的標簽信息等信息。

EXTS.S.QUERYINDEX

EXTS.S.QUERYINDEX Pkey filter1 [filter2 ...]

在Pkey中自定義過濾條件(filter),查詢目標Skey。

聚合操作

EXTS.S.RANGE

EXTS.S.RANGE Pkey Skey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket]

在Skey中查詢指定時間內(包含指定時間點)的Datapoint數據。

EXTS.S.MRANGE

EXTS.S.MRANGE Pkey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

在Skey中自定義過濾條件(filter)與查詢時間點(包含指定時間點),查詢目標Datapoint數據。

EXTS.P.RANGE

EXTS.P.RANGE Pkey fromTs toTs pkeyAggregationType pkeyTimeBucket [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

在Pkey層級對符合過濾條件(filter)的Datapoint數據進行聚合,若您指定了Skey層級的聚合,則會優先進行Skey層級聚合(效果與EXTS.S.MRANGE命令相同),再從Pkey層級對第一次聚合結果進行二次聚合。

并發寫操作

EXTS.S.RAW_MODIFY

EXTS.S.RAW_MODIFY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

修改指定Skey中Datapoint數據的value值。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

EXTS.S.RAW_MMODIFY

EXTS.S.RAW_MMODIFY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

批量修改多個指定Skey中Datapoint數據的value值。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

EXTS.S.RAW_INCRBY

EXTS.S.RAW_INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

該命令中的value值會與指定Skey中Datapoint數據的value相加實現遞增,也可以指定該命令中的value為負數實現遞減。若Pkey或Skey不存在則會自動創建,默認初始值為0,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

EXTS.S.RAW_MINCRBY

EXTS.S.RAW_MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

批量修改多個指定Skey中Datapoint數據的value值,該命令中的value值會與指定Skey中Datapoint數據的value相加實現遞增,也可以指定該命令中的value為負數實現遞減。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

通用

DEL

DEL key [key ...]

使用原生Redis的DEL命令可以刪除一條或多條TairTS數據。

說明

本文的命令語法定義如下:

  • 大寫關鍵字:命令關鍵字。

  • 斜體:變量。

  • [options]:可選參數,不在括號中的參數為必選。

  • A|B:該組參數互斥,請進行二選一或多選一。

  • ...:前面的內容可重復。

EXTS.P.CREATE

類別

說明

語法

EXTS.P.CREATE Pkey

時間復雜度

O(1)

命令描述

創建一個新的Pkey(TairTS數據結構),若Pkey已存在則創建失敗。

選項

  • Pkey:Key名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.P.CREATE foo

返回示例:

OK

EXTS.S.CREATE

類別

說明

語法

EXTS.S.CREATE Pkey Skey [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 label2 val2 ...]

時間復雜度

O(1)

命令描述

在指定的Pkey中創建一個Skey,若Pkey不存在則會自動創建,若Skey已經存在則創建失敗。

說明

您可以在創建Skey時設置其相關屬性,例如過期時間、是否開啟壓縮等。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.CREATE foo temperature DATA_ET 10000000 LABELS sensor_id 1

返回示例:

OK

EXTS.S.ALTER

類別

說明

語法

EXTS.S.ALTER Pkey Skey [DATA_ET time]

時間復雜度

O(1)

命令描述

修改指定Skey的元數據信息,當前僅支持修改過期時間(DATA_ET)。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.ALTER foo temperature DATA_ET 100000

返回示例:

OK

EXTS.S.ADD

類別

說明

語法

EXTS.S.ADD Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(1)

命令描述

向Skey中插入一條Datapoint數據。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

  • ts:Datapoint數據的Unix時間戳,單位為毫秒,支持用*表示系統當前的時間戳。

  • value:Datapoint數據的值,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.ADD foo temperature * 30.5 DATA_ET 1000000 LABELS sensor_id 1

返回示例:

OK

EXTS.S.MADD

類別

說明

語法

EXTS.S.MADD Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(n),其中n為keynumber。

命令描述

在指定Pkey的多個Skey分中別插入一條Datapoint數據。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • keynumber:指定多條數據的個數。

  • Skey:Skey名稱。

  • ts:Datapoint數據的Unix時間戳,單位為毫秒,支持用*表示系統當前的時間戳。

  • value:Datapoint數據的值,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.MADD foo 3 temperature * 30.2 pressure * 2.05 distance * 0.5

返回示例:

1) OK
2) OK
3) OK

EXTS.S.INCRBY

類別

說明

語法

EXTS.S.INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(1)

命令描述

向Skey中插入一條Datapoint數據,該命令中的value將與Skey中最近Datapoint的value值相加實現遞增,也可以指定該命令中的value為負數實現遞減。若Pkey或Skey不存在則會自動創建,默認初始值為0,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

  • ts:Datapoint數據的Unix時間戳,單位為毫秒,支持用*表示系統當前的時間戳。

  • value:待增加操作的值,可以指定該值為負數實現相減,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

提前執行EXTS.S.ADD foo temperature 1644310456023 30.0命令。

命令示例:

EXTS.S.INCRBY foo temperature 1644372093031 2

返回示例:

OK

若此時執行EXTS.S.GET foo temperature命令,將會返回如下結果:

1) (integer) 1644372093031
2) "32"

EXTS.S.MINCRBY

類別

說明

語法

EXTS.S.MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(n),其中n為keynumber。

命令描述

在指定Pkey的多個Skey分別插入一條Datapoint數據,該命令中的value將分別與各個Skey中最近Datapoint的value值相加實現遞增,也可以指定該命令中的value為負數實現相減。若Pkey或Skey不存在則會自動創建,默認初始值為0,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • keynumber:指定多條數據的個數。

  • Skey:Skey名稱。

  • ts:Datapoint數據的Unix時間戳,單位為毫秒,支持用*表示系統當前的時間戳。

  • value:待增加操作的值,可以指定該值為負數實現相減,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.MINCRBY foo 3 temperature * 0.2 pressure * -0.1 distance * 0.0

返回示例:

1) OK
2) OK
3) OK

EXTS.S.DEL

類別

說明

語法

EXTS.S.DEL Pkey Skey

時間復雜度

O(1)

命令描述

刪除指定Pkey中的單個Skey,并刪除目標Skey中所有的Datapoint數據。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.DEL foo temperature

返回示例:

OK

EXTS.S.GET

類別

說明

語法

EXTS.S.GET Pkey Skey

時間復雜度

O(1)

命令描述

查詢指定Skey中最新的Datapoint數據。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

返回值

  • 執行成功:返回對應的Datapoint數據。

  • nil:表示Pkey或Skey不存在。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.GET foo temperature

返回示例:

1) (integer) 1644372730150
2) "32.2"

EXTS.S.INFO

類別

說明

語法

EXTS.S.INFO Pkey Skey

時間復雜度

O(1)

命令描述

查詢指定Skey的元數據信息,包含Datapoint數量、最近Datapoint的時間戳與value值、Skey的標簽信息等信息。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

返回值

  • 執行成功:返回Skey的元數據信息。

  • nil:表示Pkey或Skey不存在。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.INFO foo temperature

返回示例:

 1) totalDataPoints            // Datapoint數量。
 2) (integer) 1
 3) maxDataPoints              // Skey可存儲Datapoint數量的上限,默認為0(表示不限制)。
 4) (integer) 0
 5) maxDataPointsPerChunk      // 每個Chunk存儲的Datapoint個數。
 6) (integer) 32
 7) dataPointsExpireTime       // Skey的相對過期時間(DATA_ET),單位為毫秒,0表示不過期。
 8) (integer) 0
 9) lastTimestamp              // 最近Datapoint的時間戳。
10) (integer) 1644389400996
11) chunkCount                 // Skey的chunk數量。
12) (integer) 1
13) lastValue                  // 最近Datapoint的value。
14) (integer) 28
15) labels                     // Skey的標簽信息。
16) 1) 1) "sensor_id"
       2) "1"

EXTS.S.QUERYINDEX

類別

說明

語法

EXTS.S.QUERYINDEX Pkey filter1 [filter2 ...]

時間復雜度

O(n),其中n為過濾條件中的最大集合數。

命令描述

在Pkey中自定義過濾條件(filter),查詢目標Skey。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • filter:過濾條件,您可以根據Skey的標簽(LABELS)過濾目標Skey,更多信息請參見索引過濾語法

    說明

    構建filter時,必須存在EQ、CONTAINS、LIST_MATCH邏輯中的任意一個,否則會查詢失敗。

返回值

  • 執行成功:返回符合過濾條件的Skey。

  • nil:表示Pkey或Skey不存在。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.QUERYINDEX foo sensor_id=1

返回示例:

1) "temperature"

EXTS.S.RANGE

類別

說明

語法

EXTS.S.RANGE Pkey Skey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket]

時間復雜度

O(n),其中n為目標Datapoint的數據塊個數。

命令描述

在Skey中查詢指定時間內(包含指定時間點)的Datapoint數據。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

  • fromTs:查詢的開始時間(Unix時間戳),單位為毫秒。

  • toTs:查詢的結束時間(Unix時間戳),單位為毫秒,支持用*表示系統當前的時間戳,若該值等于fromTs可實現單時間點查詢。

  • MAXCOUNT:指定返回的Datapoint條數,默認為不填(Tair的上限為1,000,000條)。

  • AGGREGATION

    • aggregationType:聚合類型,例如MAX(最大值)、AVG(平均值)、SUM(求和)等,更多信息請參見聚合功能語法

    • timeBucket:采樣間隔,單位為毫秒,最小值為1,000毫秒。

      Tair會將該時間范圍內的數據進行聚合并返回一個結果,返回的時間點為采樣間隔的開始時間。

    例如AGGREGATION AVG 5000將返回每5,000ms的平均數。

返回值

  • 執行成功:返回對應的Datapoint數據,若命令中指定了聚合,則返回聚合結果。

    說明

    返回結果中會額外返回一個token值,0表示已全部顯示,1表示還有符合條件的Datapoint數據未顯示。您可以根據該值,同時將已返回結果中最后一個Datapoint的時間戳作為開始時間繼續遍歷獲取,輕松實現分批聚合。

  • nil:表示Pkey或Skey不存在。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.RANGE foo test 1644459031662 * AGGREGATION AVG 10000 MAXCOUNT 2
// 求指定時間點內每10,000ms的平均數,同時指定返回2條數據。

返回示例:

1) 1) 1) (integer) 1644459730000
      2) "20.6"
   2) 1) (integer) 1644459790000
      2) "21.2"
2) (integer) 1                    // 1表示還有符合條件的Datapoint數據未顯示,0表示已全部顯示。

EXTS.S.MRANGE

類別

說明

語法

EXTS.S.MRANGE Pkey fromTs toTs [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

時間復雜度

O(n),其中n為目標Datapoint的數據塊個數。

命令描述

在Skey中自定義過濾條件(filter)與查詢時間點(包含指定時間點),查詢目標Datapoint數據。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • fromTs:查詢的開始時間(Unix時間戳),單位為毫秒。

  • toTs:查詢的結束時間(Unix時間戳),單位為毫秒,支持用*表示系統當前的時間戳,若該值等于fromTs可實現單時間點查詢。

  • MAXCOUNT:指定每個Skey返回的Datapoint條數,默認為不填(Tair的上限為1,000,000條)。

  • AGGREGATION

    • aggregationType:聚合類型,例如MAX(最大值)、AVG(平均值)、SUM(求和)等,更多信息請參見聚合功能語法

    • timeBucket:采樣間隔,單位為毫秒,最小值為1,000毫秒。

      Tair會將該時間范圍內的數據進行聚合并返回一個結果,返回的時間點為采樣間隔的開始時間。

  • WITHLABELS:設置返回結果中是否包含標簽信息,默認為不填(不顯示標簽信息)。

  • filter:過濾條件,您可以根據Skey的標簽(LABELS)過濾目標Skey,更多信息請參見索引過濾語法

    說明

    構建filter時,必須存在EQ、CONTAINS、LIST_MATCH邏輯中的任意一個,否則會查詢失敗。

返回值

  • 執行成功:返回符合過濾條件的Skey組信息。

  • nil:表示Pkey或Skey不存在。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.MRANGE foo 1644451031662 * AGGREGATION MAX 10000 WITHLABELS FILTER sensor_id=1

返回示例:

1) 1) "temperature"
   2) 1) 1) "sensor_id"
         2) "1"
   3) 1) 1) (integer) 1644481000000
         2) "30"
   4) (integer) 0
2) 1) "test"
   2) 1) 1) "sensor_id"
         2) "1"
   3) 1) 1) (integer) 1644459730000
         2) "20"
      2) 1) (integer) 1644459790000
         2) "20"
      3) 1) (integer) 1644460620000
         2) "29"
   4) (integer) 0

EXTS.P.RANGE

類別

說明

語法

EXTS.P.RANGE Pkey fromTs toTs pkeyAggregationType pkeyTimeBucket [MAXCOUNT count] [AGGREGATION aggregationType timeBucket] [WITHLABELS] FILTER filter1 [filter2 ...]

時間復雜度

O(n),其中n為目標Datapoint的數據塊個數。

命令描述

在Pkey層級對符合過濾條件(filter)的Datapoint數據進行聚合,若您指定了Skey層級的聚合,則會優先進行Skey層級聚合(效果與EXTS.S.MRANGE命令相同),再從Pkey層級對第一次聚合結果進行二次聚合。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • fromTs:查詢的開始時間(Unix時間戳),單位為毫秒。

  • toTs:查詢的結束時間(Unix時間戳),單位為毫秒,支持用*表示系統當前的時間戳,若該值等于fromTs可實現單時間點查詢。

  • pkeyAggregationType:Pkey的聚合類型,更多信息請參見聚合功能語法

  • pkeyTimeBucket:Pkey的采樣間隔,單位為毫秒,最小值為1,000毫秒。

    Tair會將該時間范圍內的數據進行聚合并返回一個結果,返回的時間點為采樣間隔的開始時間。

  • MAXCOUNT:指定每個Skey返回的Datapoint條數,默認為不填(Tair的上限為1,000,000條)。

  • AGGREGATION

    • aggregationType:Skey的聚合類型,更多信息請參見聚合功能語法

    • timeBucket:Skey的采樣間隔,單位為毫秒,最小值為1,000毫秒。

      Tair會將該時間范圍內的數據進行聚合并返回一個結果,返回的時間點為采樣間隔的開始時間。

  • WITHLABELS:設置返回結果中是否包含標簽信息,默認為不填(不顯示標簽信息)。

  • filter:過濾條件,您可以根據Skey的標簽(LABELS)過濾目標Skey,更多信息請參見索引過濾語法

    說明

    構建filter時,必須存在EQ、CONTAINS、LIST_MATCH邏輯中的任意一個,否則會查詢失敗。

返回值

  • 執行成功:返回聚合結果。

  • nil:表示Pkey或Skey不存在。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.P.RANGE foo 1644451031662 * SUM 500000 AGGREGATION SUM 10000 FILTER sensor_id=1

返回示例:

1) 1) 1) (integer) 1644459500000
      2) "40"
   2) 1) (integer) 1644460500000
      2) "29"
   3) 1) (integer) 1644481000000
      2) "30"
2) (integer) 0

EXTS.S.RAW_MODIFY

類別

說明

語法

EXTS.S.RAW_MODIFY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(1)

命令描述

修改指定Skey中Datapoint數據的value值。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

  • ts:待更新Datapoint的Unix時間戳,單位為毫秒。

  • value:待更新的值,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.RAW_MODIFY foo temperature 1644310456023 31.5

返回示例:

OK

EXTS.S.RAW_MMODIFY

類別

說明

語法

EXTS.S.RAW_MMODIFY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(n),其中n為keynumber。

命令描述

批量修改多個指定Skey中Datapoint數據的value值。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • keynumber:指定多條數據的個數。

  • Skey:Skey名稱。

  • ts:待更新Datapoint的Unix時間戳,單位為毫秒。

  • value:待更新的值,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.RAW_MMODIFY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5

返回示例:

1) OK
2) OK
3) OK

EXTS.S.RAW_INCRBY

類別

說明

語法

EXTS.S.RAW_INCRBY Pkey Skey ts value [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(1)

命令描述

該命令中的value值會與指定Skey中Datapoint數據的value相加實現遞增,也可以指定該命令中的value為負數實現遞減。若Pkey或Skey不存在則會自動創建,默認初始值為0,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • Skey:Skey名稱。

  • ts:待更新Datapoint的Unix時間戳,單位為毫秒。

  • value:待增加操作的值,可以指定該值為負數實現相減,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

提前執行EXTS.S.ADD foo temperature 1644310456 30.0命令。

命令示例:

EXTS.S.RAW_INCRBY foo temperature 1644310456 3.3

返回示例:

OK

若此時執行EXTS.S.GET foo temperature命令,將會返回如下結果:

1) (integer) 1644310456
2) "33.3"

EXTS.S.RAW_MINCRBY

類別

說明

語法

EXTS.S.RAW_MINCRBY Pkey keynumber Skey ts value [Skey ts value ...] [DATA_ET time] [CHUNK_SIZE size] [UNCOMPRESSED] [LABELS label1 val1 ...]

時間復雜度

O(n),其中n為keynumber。

命令描述

批量修改多個指定Skey中Datapoint數據的value值,該命令中的value值會與指定Skey中Datapoint數據的value相加實現遞增,也可以指定該命令中的value為負數實現遞減。若Pkey或Skey不存在則會自動創建,屬性(過期時間、是否開啟壓縮等)僅在Skey不存在并自動創建的情況下生效。

選項

  • Pkey:PKey名稱(TairTS數據結構),用于指定命令調用的TairTS對象。

  • keynumber:指定多條數據的個數。

  • Skey:Skey名稱。

  • ts:待更新Datapoint的Unix時間戳,單位為毫秒。

  • value:待增加操作的值,可以指定該值為負數實現相減,數據類型為雙精度浮點(double)型。

  • DATA_ET time:DataPoint數據的相對過期時間,單位為毫秒,默認為不填(表示不會過期)。

  • CHUNK_SIZE:單個Chunk可保存的Datapoint數,默認值為256條,取值范圍為[1,256]。

  • UNCOMPRESSED:設置Skey不開啟壓縮,默認為不填(即開啟壓縮)。

  • LABELS:Skey的屬性,輸入一組或多組對應的標簽名、標簽值,例如LABELS sensor_id 1

返回值

  • OK:表示執行成功。

  • 其它情況返回相應的異常信息。

示例

命令示例:

EXTS.S.RAW_MMODIFY foo 3 temperature 1644565954814 30.2 pressure 1644565954814 2.05 distance 1644565954814 0.5

返回示例:

1) OK
2) OK
3) OK

索引過濾語法

您可以根據Skey的標簽(LABELS)過濾目標Skey。過濾條件(filter)的語法如下:

說明

構造filter時,支持如下所有命令及組合使用,但必須存在EQ、CONTAINS、LIST_MATCH邏輯中的任意一個。

filter命令

說明

邏輯

L = V

標簽L等于V。

EQ(equals)

L !=

標簽L不為NULL, 即目標Skey包含標簽L。

CONTAINS

L = (v1,v2,...)

標簽L為v1或v2等。

LIST_TMATCH

L != V

標簽L不等于V。

NOEQ(equals)

L =

標簽L為NULL, 即目標Skey不包含標簽L。

NOCONTAINS

L != (v1,v2,...)

標簽L不為v1和v2等。

LIST_NOTMATCH

聚合功能語法

聚合操作會對采集間隔(timeBucket)范圍內的數據進行聚合,支持如下聚合類型:

  • MAX:最大值

  • MIN:最小值

  • AVG:平均值

  • SUM:求和

  • FIRST:第一個值

  • LAST:最后一個值

  • RANGE:范圍(最大值 - 最小值)

  • COUNT:value數量

  • STD.P:總體方差

  • STD.S:樣本方差

  • VAR.P:總體標準差

  • VAR.S:樣本標準差