postgreSql Timescale (创建超表和物化视图)
目录
参考: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)!