自学内容网 自学内容网

postgreSql Timescale (创建超表和物化视图)

目录

1、创建数据库test

2、把数据库转为时序库 

3、创建超表

4、超表数据保留策略 6个月前数据自动删除

5、 验证查询超表空间

6、建立物化视图步骤


参考:https://docs.timescale.com/getting-started/latest/aggregation/

Timescale Cloud 是一个基于云的 PostgreSQL 平台,适用于资源密集型工作负载。我们帮助您更快地构建、进一步扩展并控制预算。Timescale Cloud 服务是一个经过优化的 100% PostgreSQL 数据库实例,您可以按原样使用,也可以使用特定于业务需求的功能进行扩展。可用的功能包括:

  • 时间序列和分析:带有 TimescaleDB 的 PostgreSQL。您熟悉和喜爱的 PostgreSQL,具有用于大规模存储和查询时间序列数据的功能,可用于分析和其他用例。使用超表、连续聚合和列式存储获得更快的基于时间的查询。使用本机压缩、数据保留策略和无底数据分层到 Amazon S3 节省存储空间。
  • AI 和向量:带有向量扩展的 PostgreSQL。使用 PostgreSQL 作为向量数据库,并利用专门构建的扩展来从头到尾构建 AI 应用程序。使用 pgvector 和 pgvectorscale 扩展进行快速准确的相似性搜索。使用 pgai 扩展创建向量嵌入并对数据执行 LLM 推理。
  • PostgreSQL:值得信赖的行业标准 RDBMS。非常适合需要强数据一致性、复杂关系和高级查询功能的应用程序。通过自定义函数、数据类型和扩展获得 ACID 合规性、广泛的 SQL 支持、JSON 处理和可扩展性。Timescale Cloud 持续监控您的服务并防止常见的 PostgreSQL 内存不足崩溃。

所有 Timescale Cloud 服务都包含您期望用于生产和开发环境的工具:实时迁移、 自动备份和 PITR高可用性读取副本数据分叉连接池分层存储、 基于使用情况的存储、安全的控制台内SQL 编辑、服务指标 和见解简化的维护等等。  

1、创建数据库test

# create database "test";

2、把数据库转为时序库 

# 在数据库会话中执行
CREATE EXTENSION timescaledb;

3、创建超表

使用的财务数据集,创建一个名为的超表 stocks_real_time,其中包含交易量排名前 100 位的代码的逐秒股票交易数据。

创建一个常规 PostgreSQL 表来存储实时股票交易数据CREATE TABLE



CREATE TABLE stocks_real_time (

    time TIMESTAMPTZ NOT NULL,

    symbol TEXT NOT NULL,

    price DOUBLE PRECISION NULL,

    day_volume INT NULL

);

4、超表数据保留策略 6个月前数据自动删除

SELECT add_retention_policy('stocks_real_time ', INTERVAL '6 months');

5、 验证查询超表空间

SELECT *
FROM timescaledb_information.dimensions
WHERE hypertable_name = 'stocks_real_time';



6、建立物化视图步骤

-- 聚合查询语句
select
    day_volume,
    max(time) last_time,
    time_bucket(interval '1 day',data_time) as bucket
from stocks_real_time td
group by time ,bucket
order by bucket desc ;


-- 创建物化视图
CREATE MATERIALIZED view stocks_real_day_calculation
            WITH (timescaledb.continuous) AS
select
    day_volume,
    max(time) last_time,
    time_bucket(interval '1 day',data_time) as bucket
from stocks_real_time td
group by time ,bucket
order by bucket desc ;



-- 创建刷新策略
SELECT add_continuous_aggregate_policy(
               'stocks_real_day_calculation',          -- 物化视图的名称
               start_offset =>  INTERVAL '3 day',  -- 开始偏移量,设置为3天
               end_offset => INTERVAL '1 day',  -- 结束偏移量,设置为1天
               schedule_interval => INTERVAL '1 hour'  -- 刷新间隔,每1小时刷新一次
       );

-- 聚合数据保留策略 3年前聚合数据删除
SELECT add_retention_policy('stocks_real_day_calculation', INTERVAL '3 years');

-- 查询视图数据
select * from stocks_real_day_calculation;

--删除物化视图
drop  MATERIALIZED VIEW stocks_real_day_calculation


原文地址:https://blog.csdn.net/qq_24426227/article/details/145261651

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!