震精 - 数据库还能这样玩 - 三十六计 (中)

简介:

PostgreSQL 三十六计 - 中

13. 金融风控、公安刑侦、社会关系、人脉分析 等业务场景,高效实现图式数据搜索。

利用PostgreSQL函数编程,异步消息,复杂JOIN等手段,解决高效的图式数据查询需求。

1. 猎头挖人

作为IT人士或者猎头、HR,对Linkedin一定不陌生,领英网实际上就是一个维护人际关系的网站。

通过搜索你的一度人脉,可以找到与你直接相关的人,搜索2度人脉,可以搜索到与你间接相关的人。

当然你还可以继续搜索N度人脉,不过那些和你可能就不那么相关了。

如果你知道和美女范冰冰隔了几度人脉,是不是有点心动了呢?

其实在古代,就有这种社会关系学,还有这种专门的职业,买官卖官什么的,其实都是人脉关系网。看过红楼梦的话,你会发现那家子人怎么那么多亲戚呢?

2. 公安破案

公安刑侦学也是一类人脉相关的应用,只是现在的关系和行为越来越复杂,这种关系也越来越复杂,原来的人能接触的范围基本上就靠2条腿,顶多加匹马。

现在,手机,电脑,ATM机,超时,摄像头,汽车等等,都通过公路网、互联网连接在一起。

一个人的行为,产生的关系会更加的复杂,单靠人肉的关系分析,刑侦难度变得越来越复杂。

3. 金融风控

比如银行在审核贷款资格时,通常需要审核申请人是否有偿还能力,是否有虚假消息,行为习惯,资产,朋友圈等等。 同样涉及到复杂的人物关系,人的行为关系分析等等。

此类围绕人为中心,事件为关系牵连的业务催生了图数据库的诞生。

目前比较流行的图数据库比如neo4j,某些图数据库在数据量超过内存大小时,性能下降会非常严重。

PostgreSQL是一个功能全面的数据库,其中就有一些图数据库产品的后台是使用PostgreSQL的,例如OpenCog, Cayley等。

除了这些图数据库产品,PostgreSQL本身在关系查询,关系管理方面也非常的成熟,十亿量级的关系网数据,3层关系运算仅需毫秒。

还可以用于运算人与人之间的最短关系,穷举关系等。

主要用到的技术plpgsql服务端编程、异步消息、数组、游标、pgrouting路由算法等。

14. with recursive递归查询有妙用。

大量数据的求差集、最新数据搜索, 最新日志数据与全量数据的差异比对, 递归收敛扫描,提升数百倍性能。

15. 数据一致性分享、数据泵

在IoT的场景中,有流式分析的需求,也有存储历史数据的需求,同时还有数据挖掘的需求,搜索引擎可能也需要同一份数据,还有一些业务可能也要用到同一份数据。

但是如果把数据统统放到一个地方,这么多的业务,它们有的要求实时处理,有的要求批量处理,有的可能需要实时的更新数据,有的可能要对大数据进行分析。

10万级别左右的机器,PostgreSQL 的数据吞吐量可以达到100万条/s以上,同时数据库本身具备了严格的可靠性和一致性保证。

PostgreSQL为分享数据提供了插槽的概念,每个插槽对应一个目标端,支持断点续传,支持多个目标端。用于流式的分享数据是非常好的选择。

16. ad lock解决高并发更新少量记录的秒杀问题

秒杀在商品交易中是一个永恒的话题,从双十一,到一票难求,比的仅仅是手快吗?

其实对于交易平台来说,面对的不仅仅是人肉,还有很多脚本,外挂自动化的抢购系统,压力可想而知。

秒杀的优化手段很多,就拿数据库来说,有用排队机制的,有用异步消息的,有用交易合并的。

PostgreSQL提供了一种更极端的秒杀应对方法,裸秒。可以让用户尽情的释放激情,以一台32核64线程的机器为例,每秒可以获取、探测约130万次的ad lock。

试想一下,对单条记录的秒杀操作,达到了单机100万/s的处理能力后,秒杀算什么?100台机器就能处理1亿/s的秒杀请求。

17. PostgreSQL 使用bitpack支持实时用户画像

用户画像在市场营销的应用重建中非常常见,已经不是什么新鲜的东西,比较流行的解决方案是给用户贴标签,根据标签的组合,圈出需要的用户。

通常画像系统会用到宽表,以及分布式的系统。

宽表的作用是存储标签,例如每列代表一个标签,但是通常数据库到2000个列基本就是极限了,上万TAG的话,只能使用多表JOIN来实现,效率较差。

另一方面,使用宽表(甚至列存储),标签的筛选性能也比较差(无法达到实时级别)。

以PostgreSQL数据库为基础,以BIT来存储用户,每行一个TAG的方式,单机支持十万亿user tags体量,毫秒级实时圈人。

18. 路径动态规划,助力物流配送、打车软件、导航软件、出行软件、高速、高铁等业务场景

物流行业是被电子商务催生的产业之一。

快件的配送和揽件的调度算法是物流行业一个非常重要的课题,直接关系到配送或揽件的时效,以及物流公司的运作成本。

好的算法,可以提高时效,降低成本,甚至可以更好的调动社会资源,就像滴滴打车一样,也许能全民参与哦。

以后也许上班路途还能顺路提供快递服务呢。

以物流行业为例,PostgreSQL为物流行业应用提供了包括机器学习(madlib)、路径规划(pgrouting)、地理位置信息存储和处理等基础服务。

19. 金融级可靠性,事务级可控多副本。

传统的金融行业高度依赖共享存储来解决数据库的高可用,数据0丢失以及异地容灾的场景。

共享存储的解决方案价格昂贵,对厂商的依赖较大。

PostgreSQL基于同步流复制的任意副本解决方案,在解决0丢失,高可用以及容灾的问题的同时,还可以提供只读的功能。相比传统的存储解决方案,优势更加明显。

允许用户根据事务的可靠性要求,设置事务所需的副本数。

20. 块级瘦索引,解决物联网、金融、日志、行为轨迹类数据快速导入与高效查询的矛盾

在物联网、金融、日志类型场景中,数据持续不断的产生,对于堆存储来说,有线性相关的特点。

例如,时间字段往往和物理存储的顺序具有线性相关性。

例如,有一些自增字段,也和堆存储的物理顺序线性相关。

对与物理存储线性相关的字段(时间,自增字段),PostgreSQL提供了一种BRIN块级范围索引,索引中存储了对应数据块中的字段统计信息(例如最大值,最小值,平均值,记录数、SUM,空值个数等)

这种索引很小,因为索引的粒度是连续的块,而不是每条记录。

通常比BTREE索引小几百倍。

如果字段的线性相关性很好,进行范围查询或者精确检索时,效率非常高。

对于统计查询,也可以使用BRIN索引,提高分析统计的效率。

21. 时序数据有损压缩

在物联网、金融、FEED等场景中,往往有大批量的指标数据产生并进入数据库,通常包含 时间、值 两个字段。

这些数据由于量非常庞大,而且就像音频一样,实际上是可以对其进行有损的压缩存储的。

最为流行的是旋转门的压缩算法,在PostgreSQL中可以使用UDF,方便的实现这个功能。

从而实现流式\时序数据的有损压缩,例如在UDF中使用旋转门压缩算法,压缩时序数据。

22. 准确诠释数据类型,基因工程

PostgreSQL凭借良好的扩展性,不仅仅是一个数据库,同时也是具备非常强大的数据处理能力的数据平台。

很多垂直行业的用户拿它来做各种和业务贴合非常紧密的事情。

例如PostgreSQL在生命科学领域的应用案例 - 基因工程。

通常的思维可能是这样的,把数据存在数据库,需要运算的时候,再把数据取出进行运算(例如配对),需要花费非常多的网络传输时间。

PostgreSQL提供了基因工程相关的数据类型,操作类型,索引。满足基因工程业务的需求。

用户可以直接在数据库中对基因数据进行处理。

23. 准确诠释数据类型,化学分子

RDKit是PostgreSQL的化学插件,支持化学数据类型的高效率存取,检索,索引。以及操作符,例如化学成分的分解,合成。

对于一个数据库来说,支持一个数据类型,首先需要支持数据类型的INPUT和OUTPUT,然后还要支持索引高效率的检索这种类型的数据,需要支持足够多的OP满足业务的需求,支持UDF处理对应的数据类型。

如果没有准确的诠释,只能存储为二进制字节流,或者字符串,运算、检索、操作、函数处理都不可能。

24. 数据预测、挖掘

PostgreSQL、以及ApsaraDB HybridDB(基于GPDB),等PostgreSQL相关的数据库,都支持MADlib机器学习库,这个库支持机器学习领域常见的算法(例如聚类、线性回归、贝叶斯、文本处理等等)

其中在数据领域用得较多的数据预测,可以使用MADLib的多元回归库,进行对数据的预测。

结合plR语言 或者R + pivotalR 、 python + pythonR插件,可以自动将R\python语言的命令转换为MADlib库函数,对数据进行分析。

非常适合使用R或者python对数据进行分析的数据科学家使用。

其特点是高效(数据与运算一体,可以使用LLVM\向量计算等技术优化,同时不需要传播数据,节约了传播的开销)、易用(支持常见的SQL、r, python等编程)。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
11月前
|
存储 监控 数据可视化
从繁琐到高效:数字化工具助力HR管理的实际案例
随着数字化转型加速,人力资源管理(HRM)正经历深刻变革。传统纸质记录和手动流程逐渐被数字化工具取代,提升了效率并带来全新管理模式。本文探讨了看板工具、HR管理系统等如何改变传统HRM模式,并重点介绍了板栗看板的独特价值,包括任务可视化、跨部门协作、自定义功能、数据驱动决策及移动端支持,助力企业优化流程、提升效率和员工体验。
|
人工智能 关系型数据库 数据处理
快速构建,JeeLowCode让你的应用开发速度飞起来#快速开发
低代码平台通过直观的图形化界面和模块化设计,大幅缩短开发时间,降低成本,使企业无需大量技术人员即可快速构建应用。平台支持多种数据库、数据处理与管理,具备高效引擎和丰富的插件生态,帮助企业快速应对市场变化,推动数字化转型。演示地址:http://demo.jeelowcode.com/ 官网地址:http://www.jeelowcode.com
|
人工智能 机器人
“AI+儿童陪伴”,是噱头还是趋势?
AI陪伴型玩具逐渐成为家庭教育的新选择。它们不仅能够解放忙碌的家长,减轻其负担,还能满足孩子的好奇心,提供寓教于乐的成长环境。然而,AI技术尚未完全成熟,内容的准确性和产品的安全性仍需关注,家长在享受便利的同时,仍需谨慎陪伴。
第十四问:预编译头是什么?有什么用?
预编译头文件(PCH)通过预先编译常用且不常改变的头文件,减少重复编译,显著提高大型项目的编译速度。它还支持模块化开发,隐藏实现细节,增强代码的安全性和可维护性。即使是小型项目,预编译头也有助于未来的扩展和维护。
|
运维 数据处理 Apache
数据实时计算产品对比测评报告:阿里云实时计算Flink版
数据实时计算产品对比测评报告:阿里云实时计算Flink版
|
机器学习/深度学习 人工智能 TensorFlow
利用深度学习进行图像识别的基本原理与实践
【8月更文挑战第27天】在这篇文章中,我们将探索图像识别技术的核心原理,并借助深度学习框架实现一个基本的图像识别模型。通过简洁的代码示例和直观的解释,我们旨在向读者展示如何从零开始构建自己的图像识别系统,以及这一过程中可能遇到的挑战和解决方案。无论你是AI领域的初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和指导。
|
机器学习/深度学习 人工智能 前端开发
移动应用开发的未来趋势:跨平台框架与AI的融合
【7月更文挑战第30天】随着移动技术的不断进步,移动应用开发领域正在经历一场革命。传统的原生开发模式正逐渐让位于更加灵活、高效的跨平台解决方案。同时,人工智能(AI)技术的融入为移动应用带来了前所未有的智能功能和用户体验。本文将探讨跨平台框架的发展,AI技术在移动应用中的运用以及二者结合后如何塑造未来的移动应用开发。
252 2
|
监控 数据挖掘 数据安全/隐私保护
ERP系统中的应收应付管理与风险控制解析
【7月更文挑战第25天】 ERP系统中的应收应付管理与风险控制解析
763 2
|
分布式计算 大数据 BI
MaxCompute操作报错合集之返回错误代码ODPS-0110999,是什么原因
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
335 1
|
机器学习/深度学习 人工智能 监控
探索人工智能在图像识别领域的创新应用
【5月更文挑战第25天】随着深度学习技术的飞速发展,人工智能(AI)在图像识别领域取得了重大进展。本文将深入探讨人工智能如何通过先进的算法和模型改进图像识别能力,并分析其在不同行业中的应用前景。我们将重点讨论卷积神经网络(CNN)与循环神经网络(RNN)的结合使用,以及生成对抗网络(GAN)在提高图像质量方面的作用。此外,文中还将提及数据增强、迁移学习等策略对提升模型泛化性能的重要性。