暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL 应用开发解决方案最佳实践系列课程 - 6. 时空、时态、时序、日志等轨迹系统

digoal 2021-01-05
1717

作者

digoal

日期

2021-05-09

标签

PostgreSQL , 解决方案 , 最佳实践 , 课程


背景

本文信息量非常大.

PostgreSQL 应用开发解决方案最佳实践系列课程 - 6. 时空、时态、时序、日志等轨迹系统

视频回放

课程对象

数据库架构师, 应用开发者, DBA.

1、应用场景

  • 网约车:
    • 实时位置, 时空轨迹回放、轨迹偏离告警、地理围栏、异步消息和告警
  • 共享单车:
    • 实时位置, 无损和有损压缩, 冷热分离存储, 时空轨迹回放
  • 车联网:
    • 实时位置, 无损和有损压缩, 冷热分离存储, 时空轨迹回放
  • 应用 feed log:
    • 时序存储、无损和有损压缩、区间或点查询、区间聚合分析和存储、大范围分析
  • 物联网:
    • 时序存储、无损和有损压缩、区间或点查询、区间聚合分析和存储、大范围分析、first value、last value、柱状图分析、触发异步消息和告警通知、流计算
  • 证券:
    • 时序存储、无损和有损压缩、区间或点查询、区间聚合分析和存储、大范围分析、first value、last value、柱状图分析、触发异步消息和告警通知、流计算
  • 电网:
    • 时序存储、无损和有损压缩、区间或点查询、区间聚合分析和存储、大范围分析、first value、last value、柱状图分析、触发异步消息和告警通知、流计算
  • 公安刑侦:
    • 时空轨迹时态分析、触发异步消息和告警通知、流计算

2、业界解决方案

KV存储

3、业界解决方案的挑战或痛点

KV存储只做到:
写入快
易扩展
压缩比高

但是:

综合能力极其简陋, 研发成本极高. 与关系数据库相差十万八千里, 要啥没啥, 开发极其痛苦, KV存储只负责高速入库, 其他什么几乎都要业务实现, 开发代价大, 周期长, 研发成本极高.
查询性能差, 这里说的不是点查, 是区间或JOIN分析类的查询弱.
不支持时空、空间、轨迹等多模类型, 不支持轨迹类型和轨迹运算. 无法满足GIS类时序业务需求, 如时空轨迹存储、时空分析、时态分析等.
不支持时空索引
不支持时序索引
不支持流计算
不支持异步消息触发
不支持冷热分离存储
不支持行、列、冷、热混合存储

4、PG的解决方案

PostgreSQL 针对时空、时态、时序、日志等轨迹系统的综合能力图谱:

5、PG的解决方案原理

6、PG的解决方案 VS 业界解决方案

PG 的时序解决方案堪称完美, 要啥有啥.

7、DEMO

准备工作
ECS , Linux + PostgreSQL 客户端软件
阿里云 RDS PostgreSQL 13

7.1、时空、时态、时序、日志等轨迹系统

知识量太大, 只挑几个功能点和场景进行DEMO介绍.

1、海量写入性能
2、模拟任意维度聚集索引与高效率轨迹查询
3、使用轨迹类型和高效率时态分析
4、对比时序索引和普通btree索引
5、行、列、冷、热、混合分区
6、并行计算
7、递归获取first,last value
8、绘制柱状图
9、异步消息与触发告警

8、知识点回顾

brin 时序索引
ganos 时空引擎
postgis 时空引擎
轨迹数据类型
轨迹应用之时态分析
流计算
异步消息
including index 类聚簇表
column store 列存储
compress 压缩存储
partition table 行、列、冷、热 混合存储
oss_fdw 冷热分离外部表
oss 函数计算
madlib 机器学习

9、参考文档

《PostgreSQL 15大惊奇应用场景实践 - 直播预告》

https://help.aliyun.com/document_detail/95580.html

https://help.aliyun.com/document_detail/44461.htm

《PostgreSQL 时序最佳实践 - 证券交易系统数据库设计 - 阿里云RDS PostgreSQL最佳实践》

《泛电网系统(智能电表、智能燃气表等) 海量实时计算+OLTP+OLAP DB设计 - 阿里云(RDS、HybridDB) for PostgreSQL最佳实践》

《PostgreSQL IoT,车联网 - 实时轨迹、行程实践 1》

《PostgreSQL IoT,车联网 - 实时轨迹、行程实践 2 - (含index only scan类聚簇表效果)》

《PostgreSQL index include - 类聚簇表与应用(append only, IoT时空轨迹, 离散多行扫描与返回)》

《PostgreSQL 实时位置跟踪+轨迹分析系统实践 - 单机顶千亿轨迹/天》

《菜鸟末端轨迹 - 电子围栏(解密支撑每天251亿个包裹的数据库) - 阿里云RDS PostgreSQL最佳实践》

《PostgreSQL 物流轨迹系统数据库需求分析与设计 - 包裹侠实时跟踪与召回》

《PostgreSQL 聚集存储 与 BRIN索引 - 高并发行为、轨迹类大吞吐数据查询场景解说》

《PostgreSQL 时序数据库设计最佳实践 - 关联 citus,columnar,partition,timescaledb,压缩,高速写,parallel append 多分区并行查询,分区》

《PostgreSQL 排序去重limit查询优化 - 递归 vs group分组 (loop降到极限, block scan降到极限)》

《时序数据合并场景加速分析和实现 - 复合索引,窗口分组查询加速,变态递归加速》

《PostgreSQL jdbc batch insert》

《PostgreSQL 流式处理应用实践 - 二手商品实时归类(异步消息notify/listen、阅后即焚)》

《PostgreSQL 异步消息实践 - Feed系统实时监测与响应(如 电商主动服务) - 分钟级到毫秒级的实现》

《从电波表到数据库小程序之 - 数据库异步广播(notify/listen)》

《PostgreSQL - 时序、IoT类场景 - time_bucket 分析函数 - 内置 date_bin》

《PostgreSQL - 时序、IoT类场景 - first_value , last_value , agg , cte , window , recursive》

《PostgreSQL - 时序、IoT类场景 - 自定义histogram函数, 绘制数据分布柱状图 - cte window range width_bucket format plpgsql》

《PostgreSQL+MySQL 联合解决方案 - 第6课视频 - PG外部表妙用 - mysql_fdw, oss_fdw(直接读写mysql、冷热分离、归档存储)》

《阿里云RDS PostgreSQL OSS 外部表实践 - (dblink异步调用封装并行) 从OSS并行导入数据》

《阿里云RDS PostgreSQL OSS 外部表实践 - (dblink异步调用封装并行) 数据并行导出到OSS》

《PostgreSQL 时序数据库插件 timescaleDB 部署实践(含例子 纽约TAXI数据透视分析) - PostGIS + timescaleDB => PG时空数据库》

《PostgreSQL 按需切片的实现(TimescaleDB插件自动切片功能的plpgsql schemaless实现)》

《时序数据库有哪些特点? TimescaleDB时序数据库介绍》

《使用Postgres,MobilityDB和Citus大规模(百亿级)实时分析GPS轨迹》

https://help.aliyun.com/document_detail/95580.html

http://postgis.net/docs/reference.html#Temporal

https://help.aliyun.com/document_detail/107501.html

《PostgreSQL + PostGIS 时态分析》

《SQL流式案例 - 旋转门压缩(前后计算相关滑窗处理例子)》

《旋转门数据压缩算法在PostgreSQL中的实现 - 流式压缩在物联网、监控、传感器等场景的应用》

《不懂jsonpath的话等于JSON没入门》

《PostgreSQL 史上最强JSON功能 - PG 12 jsonpath 完全超越oracle, mysql, sql server的sql json标准覆盖率》

《怎么看待PostgreSQL sharding插件: citus - 对比PG 社区基于 postgres_fdw 的sharding》

《PostgreSQL citus 发布 10版本 - 支持columner 列存储, 开放rebalance源码, 支持reference,分布式,本地表JOIN 等》

《PostgreSQL sharding extension citus 优化器 Query Processing 之 - Distributed Query Planner、Executor (Real-time Executor, Router Executor, Task Tracker Executor)》

《PostgreSQL sharding extensino citus 优化器 Query Processing 之 - Subquery/CTE Push-Pull Execution》

《PostgreSQL sharding : citus 系列7 - topn 加速(count(*) group by order by count(*) desc limit x) (use 估值插件 topn)》

《PostgreSQL sharding : citus 系列6 - count(distinct xx) 加速 (use 估值插件 hll|hyperloglog)》

《PostgreSQL sharding : citus 系列5 - worker节点网络优化》

《PostgreSQL sharding : citus 系列4 - DDL 操作规范 (新增DB,TABLE,SCHEMA,UDF,OP,用户等)》

《PostgreSQL sharding : citus 系列3 - 窗口函数调用限制 与 破解之法(套用gpdb执行树,分步执行)》

《PostgreSQL sharding : citus 系列2 - TPC-H》

《PostgreSQL citus, Greenplum 分布式执行计划 DEBUG》

《PostgreSQL sharding : citus 系列1 - 多机部署(含OLTP(TPC-B)测试)- 含Citus MX模式》

《PostgreSQL 并行计算解说 汇总》

《PostgreSQL 14 preview - TOAST 支持 lz4 压缩算法 - --with-lz4 , 新增GUC default_toast_compression》

《PostgreSQL appendonly 压缩 存储引擎 - pg_cryogen》

《使用PostgreSQL plpythonu实现一个推荐引擎 - Building a recommendation engine inside Postgres with Python and Pandas》

《AWS redshift->hdb pg(Greenplum), plpython, pljava UDF 以及upload library》

《[未完待续] PostgreSQL 流式fft傅里叶变换 (plpython + numpy + 数据库流式计算)》

《在PostgreSQL中使用 plpythonu 调用系统命令》

《HTAP数据库 PostgreSQL 场景与性能测试之 24 - (OLTP) 物联网 - 时序数据并发写入(含时序索引BRIN)》

《PostgreSQL 机器学习插件 MADlib 发布1.18 , 大量深度学习, 自动机器学习等新功能和增强.》

《一张图看懂MADlib能干什么》

《PostgreSQL MADlib 图(Graph)相关机器学习算法介绍》

《PostgreSQL 多元线性回归 - 1 MADLib Installed in PostgreSQL 9.2》

《从微信小程序 到 数据库"小程序" , 鬼知道我经历了什么》

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论