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

時序數據庫(TimescaleDB)

RDS PostgreSQL實例新增TimescaleDB插件版本,支持時序數據的自動分片、高效寫入、檢索、準實時聚合等。

目前RDS PostgreSQL對外開放的是Open Source版本的TimescaleDB,由于License等問題,可能暫不支持一些高級特性,詳情參見TimescaleDB

您可以加入RDS PostgreSQL插件交流釘釘群(103525002795),進行咨詢、交流和反饋,獲取更多關于插件的信息。

前提條件

  • 實例大版本為PostgreSQL 10或以上版本。

  • 實例內核小版本至少升級到20230330。查看和升級內核小版本,請參見升級內核小版本

    重要

    20230330內核小版本之前已支持此插件,但RDS PostgreSQL支持插件策略已于2023年4月17日調整,部分插件在20230330或以上內核小版本才能創建,更多信息,請參見【通知】2023年4月17日起RDS PostgreSQL部分插件在低內核版本限制創建

    • 如果您的實例大版本為PostgreSQL 14,在20230330內核小版本前已使用了TimescaleDB插件(插件版本小于等于2.5.0),在不升級內核小版本時,不影響使用,在升級內核小版本到20230330或以上版本后,必須手動執行ALTER EXTENSION timescaledb UPDATE;命令進行手動升級插件后,才能繼續使用。

    • 如果您的實例大版本為PostgreSQL 15、13、12、11或10,在20230330內核小版本前已使用了TimescaleDB插件,不影響使用。

    • 如果您首次創建或重新創建此插件,請升級內核小版本到20230330或以上版本。

  • 使用該插件前,需要將timescaledb加入到shared_preload_libraries參數中。

    您可以使用RDS PostgreSQL參數設置功能,為shared_preload_libraries參數添加timescaledb。具體操作,請參見設置實例參數

說明

部分存量用戶可能已經創建過TimescaleDB插件,如果升級內核小版本后,出現如下類似提示:

ERROR:  could not access file "$libdir/timescaledb-1.3.0": No such file or directory

請在對應數據庫執行如下SQL更新插件:

alter extension timescaledb update;

添加TimescaleDB插件

連接PostgreSQL實例,添加TimescaleDB,命令如下:

CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;

創建時序表

  1. 創建標準表conditions,示例如下:

    CREATE TABLE conditions (
      time        TIMESTAMPTZ       NOT NULL,
      location    TEXT              NOT NULL,
      temperature DOUBLE PRECISION  NULL,
      humidity    DOUBLE PRECISION  NULL
    );
  2. 創建時序表,示例如下:

    SELECT create_hypertable('conditions', 'time');
說明

詳細命令說明請參見Create a Hypertable

高效寫入

  • 您可以使用標準SQL命令將數據插入超表(Hypertables),示例如下:

    INSERT INTO conditions(time, location, temperature, humidity)
      VALUES (NOW(), 'office', 70.0, 50.0);
  • 您還可以一次將多行數據插入到超表中,示例如下:

    INSERT INTO conditions
      VALUES
        (NOW(), 'office', 70.0, 50.0),
        (NOW(), 'basement', 66.5, 60.0),
        (NOW(), 'garage', 77.0, 65.2);

檢索

  • 您可以使用高級SQL查詢檢索數據,示例如下:

    --過去3小時內,每15分鐘采集一次數據,按時間和溫度排序。
    SELECT time_bucket('15 minutes', time) AS fifteen_min,
        location, COUNT(*),
        MAX(temperature) AS max_temp,
        MAX(humidity) AS max_hum
      FROM conditions
      WHERE time > NOW() - interval '3 hours'
      GROUP BY fifteen_min, location
      ORDER BY fifteen_min DESC, max_temp DESC;

    返回結果:

          fifteen_min       | location | count | max_temp | max_hum 
    ------------------------+----------+-------+----------+---------
     2024-12-20 16:00:00+08 | garage   |     1 |       77 |    65.2
     2024-12-20 16:00:00+08 | office   |     2 |       70 |      50
     2024-12-20 16:00:00+08 | basement |     1 |     66.5 |      60

  • 您也可以使用固有的函數進行分析查詢,示例如下:

    • 均值查詢

      --均值查詢(Median)
      SELECT percentile_cont(0.5)
        WITHIN GROUP (ORDER BY temperature)
        FROM conditions;

      返回結果:

       percentile_cont 
      -----------------
                    70
    • 移動平均數

      --移動平均數(Moving Average)
      SELECT time, AVG(temperature) OVER(ORDER BY time
            ROWS BETWEEN 9 PRECEDING AND CURRENT ROW)
          AS smooth_temp
        FROM conditions
        WHERE location = 'garage' and time > NOW() - interval '1 day'
        ORDER BY time DESC;

      返回結果:

                   time              | smooth_temp 
      -------------------------------+-------------
       2024-12-20 16:11:14.691822+08 |          77

常見問題

Q:使用插件時遇到如下報錯如何處理?

ERROR:  functionality not supported under the current license "ApacheOnly", license
HINT:  Upgrade to a Timescale-licensed binary to access this free community feature

A:TimescaleDB官方協議要求,不允許使用TLS協議的功能提供database-as-a-servicesoftware-as-a-service。更多信息,請參見TimescaleDB官方協議的2.2章節。