原理解析:
https://blog.csdn.net/zxh19800626/article/details/84670929
https://blog.csdn.net/u011596455/article/details/86558218
简介:
https://www.jianshu.com/p/938d2a3a055c
使用方法:
https://blog.csdn.net/github_39577257/article/details/90349919?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.control&dist_request_id=e7ea08fe-a900-4ae4-9eec-6fd77adf682e&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.control
1、基于 T+1 数据的实时计算
在这种业务场景中,用户并不要求基准数据的实时更新,但是要求每次查询数据都能够快速响应。需要
Presto 和 Hive 配合使用来满足实际的业务需求。每天凌晨通过azkaban 调度 Hive
脚本,根据前一天的数据计算生成中间结果表,生成完毕之后使用 Presto
查询中间结果表,得出用户最终所需要的数据。满足该业务场景的解决方案如下图:
2、基于 RDBMS 的实时计算
在这种业务场景中,用户要求查询的数据完全实时,即只要业务库中的数据发生改变,通过 Presto
查询的时候,就可以查询到刚刚改变之后的数据。要达到这个效果,我们需要使用合理的机制保证数据实时同步,因此我们使用数据库复制技术,为线上的业务数据库建立实时同步的从库,然后用
Presto 查询数据库中的数据,进而进行计算(请注意:使用官方的 Presto 直接读取数据库的性能还太低,因此建议使用JD-Presto
中的 PDBO 从数据库中读取数据并进行计算)。满足该业务场景的解决方案如下图: