16 Star 107 Fork 87

爱是与世界平行 / postgres

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
PostgreSQL 应用开发解决方案最佳实践系列课程 - 5. 配送相关调度系统 .md 5.84 KB
一键复制 编辑 原始数据 按行查看 历史
爱是与世界平行 提交于 2021-06-21 16:20 . 调整pg笔记

PostgreSQL 应用开发解决方案最佳实践系列课程 - 5. 配送相关调度系统

作者

digoal

日期

2021-05-07

标签

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


背景

PostgreSQL 应用开发解决方案最佳实践系列课程 - 5. 配送相关调度系统

视频回放

课程对象

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

1、应用场景

外卖配送: 饿了么
快递配送: 菜鸟

2、业界解决方案

geohash

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

1、编码精度和边界问题. geohash是地球球面平面化的编码方式, 编码有边界问题, 在编码接缝处的国家和地域无法有效支持.
geohash 长度决定了精度, 但是骑手稀少和骑手密集的地方无法调和.
高密集地域: 精度低会导致圈选骑手过多导致性能差. 精度高则会导致更新代价巨大, 骑手位置稍为变化都会导致geohash value变化.
2、不支持距离排序, 只支持geohash范围搜索. 导致问题:
按饭店和骑手距离近远、骑手评分高低、骑手所属的供应商、骑手的保温箱剩余槽位等多重条件筛选的效率低问题.
按geohash方圆圈选, 导致查询效率极其不稳定, 骑手稀少和骑手密集的地方无法调和. 密集地域方圆500米可能就有上百骑手, 而非密集地域方圆5公里都可能没骑手. 导致SQL没法写.
3、骑手位置更新实时性问题. 更新量大, 性能差问题.
4、用餐高峰期的呼唤骑手难问题. 争抢严重, 锁的开销巨大.
5、骑手配送目的地算法优化难题. 典型的商旅问题, 需要图式理论来解决.

4、PG的解决方案

1、Ganos & PostGIS.
geometry类型, 规避了编码边界问题. 存储为经纬度value, 精度完全有客户掌握.

2、GiST index + intarray + btree_gist + partial index
搜索采用GiST索引, 索引层面支持"order by 距离 limit N"返回, 完全规避了这个问题: "按geohash方圆圈选, 导致查询效率极其不稳定, 骑手稀少和骑手密集的地方无法调和. 密集地域方圆500米可能就有上百骑手, 而非密集地域方圆5公里都可能没骑手. 导致SQL没法写. "
支持高性能实时更新.
支持多重条件精准过滤, 效率比ES高50倍. 完全解决这个问题: "按饭店和骑手距离近远、骑手评分高低、骑手所属的供应商、骑手的保温箱剩余槽位等多重条件筛选的效率低问题. "

3、pgrouting
支持图算法, 解决TSP商旅问题, 可以高效匹配最佳多目的地配送效率.

4、位置漂移减少热点 、 skip locks
解决用餐高峰期的呼唤骑手难问题. 争抢严重, 锁的开销巨大.

5、PG的解决方案原理

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

7、DEMO

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

7.1、配送相关调度系统

1、创建插件
2、建表
3、索引
4、模拟骑手数据
5、骑手位置更新压测
6、按距离、骑手评分、骑手保温箱剩余位置、骑手所属供应商等多重条件快速检索匹配骑手测试
7、热门餐饮区, 高峰期, 密集订餐压测
8、高效匹配最佳多目的地配送效率测试

8、知识点回顾

ganos
postgis
intarray
btree_gist
partial index
空间、数组、普通字段如何实现多条件精准检索

9、参考文档

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

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

《[直播]为什么饿了么网上订餐不会凉凉 & 牛顿发现万有引力有关?》

《HTAP数据库 PostgreSQL 场景与性能测试之 47 - (OLTP多模优化) 空间应用 - 高并发空间位置更新、多属性KNN搜索并测(含空间索引)末端配送、新零售类项目》

《多点最优路径规划 - (商旅问题,拼车,餐饮配送,包裹配送,包裹取件,回程单)》

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

PostgreSQL 许愿链接

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

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

PostgreSQL 解决方案集合

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

digoal's wechat

SQL
1
https://gitee.com/AiShiYuShiJiePingXing/postgres.git
git@gitee.com:AiShiYuShiJiePingXing/postgres.git
AiShiYuShiJiePingXing
postgres
postgres
master

搜索帮助