Recent Posts

Greenplum 性能评估公式 - 阿里云HybridDB for PostgreSQL最佳实践

3 minute read

背景 通常评估一个数据库的性能,可以选择工业标准测试,或者根据业务模型,建模进行测试。 例如PostgreSQL pgbench支持的tpc-b测试,以及自定义模型测试。 benchmarksql支持的tpc-c测试。 gp_tpch支持的tpc-h测试等等。 参考文档如下 《TPC-H测试 - Pos...

阿里云RDS金融数据库(三节点版) - 案例篇

less than 1 minute read

背景 土豆哪里去挖? 土豆郊区去挖。 一挖一麻袋? 一挖一麻袋。 挖掘机不仅是城市建设的必备法宝,居然也是挖土豆利器。 但是科技行业一定不喜欢挖掘机,经常会听说xx互联网软件故障提到“光纤被挖断”,导致XX机房故障几数时。 这和数据库有什么关系呢?当然有,一些企业在业务层面可能做到了多机房,多活的...

时间、空间、对象多维属性 海量数据任意多维 高效检索 - 阿里云RDS PostgreSQL最佳实践

14 minute read

背景 人类或者其他对象的活动产生了海量的时间、空间数据,如果有科技能实现回到过去,过去的世界状态会是什么样的? 实际上这个需求在数据库中也存在。 对象数据分类 一类为静止数据(相对静止,比如建筑物),一类为动态数据(比如人类活动,物联网传感器的活动)。 搜索需求分类 1、时空快照数据搜索 我们可以这样...

车联网案例,轨迹清洗 - 阿里云RDS PostgreSQL最佳实践 - 窗口函数

3 minute read

背景 车联网中一个非常典型的场景是采集车辆的行驶轨迹,通常来说车辆的轨迹并不会实时上报,可能会堆积若干条轨迹记录,或者间隔多少时间上报一次。 一个典型的数据结构如下 (car_id, pos geometry, crt_time timestamp) 车辆在行驶,行驶过程中会遇到堵车,红绿灯,那么上报...

分区索引的应用和实践 - 阿里云RDS PostgreSQL最佳实践

1 minute read

背景 当表很大时,大家可能会想到分区表的概念,例如用户表,按用户ID哈希或者范围分区,拆成很多表。 又比如行为数据表,可以按时间分区,拆成很多表。 拆表的好处: 1、可以将表放到不同的表空间,表空间和块设备挂钩,例如历史数据访问量低,数据量大,可以放到机械盘所在的表空间。而活跃数据则可以放到SSD对应的表空...

云端海量任务调度数据库最佳实践 - 阿里云RDS PostgreSQL案例

3 minute read

背景 任务调度系统中的任务状态管理,通常会用到数据库来存储任务调度的过程状态,控制任务的锁等。 《advisory lock 实现高并发非堵塞式 业务锁》 如果是小量任务,是挺好实现的,但是每小时处理几十亿或者几亿的任务,如何设计这样的任务状态管理数据库呢? 挑战 对于一个面向多个用户的任务调度平台(例如云...

advisory lock 实现高并发非堵塞式 业务锁

5 minute read

背景 某些业务会利用数据库来作为一种可靠的锁,例如任务调度系统,或者其他需要可靠的锁机制的系统。 通常他们可能会使用数据库的一条记录来实现锁的SLOT和状态信息。 例如 create table lock_test ( tid int primary key, -- 任务ID state...

SRID (空间引用识别号, 坐标系)

1 minute read

背景 转自互联网 http://www.baike.com/wiki/srid http://www.cnblogs.com/jackdong/archive/2010/12/20/1911558.html https://en.wikipedia.org/wiki/Geographic_coordinat...

人分九等,数有阶梯 - PostgreSQL 阶品(颗粒)分析函数width_bucket, kmean应用

9 minute read

背景 从古至今,现实社会中,到处充满了等级划分,例如东汉史学家、文学家班固《汉书》《古今人表》把人分九等。九品量表”之中,分为上(上智).中(中人).下(下愚)三等。在每个等级中又分为:上上.上中.上下,中上.中中.中下,以及下上.下中和下下三等。 现代的一些见解: 第一等:圣人。已参破红尘却仍然悲天悯人,已...