基于AnalyticDB PostgreSQL的实时物化视图研发实践

简介: AnalyticDB PostgreSQL企业数据智能平台是构建数据智能的全流程平台,提供可视化实时任务开发 + 实时数据洞察,让您轻松平移离线任务,使用SQL和简单配置即可完成整个实时数仓的搭建。

1. 背景


随着大数据、云计算、物联网和人工智能等先进技术发展和广泛应用,数据的生成速度和规模达到了前所未有的程度。企业为了应对快速变化的市场环境,必须要加快数据处理速度,对实时计算的需求正在日益增长。基于流式处理引擎+大数据产品构建实时数据解决方案在过去成为主流的选择,但在不断变化的市场需求中,这种方案有些明显的劣势:

  • 双重架构问题:离线和实时数仓两套独立的架构设计可能导致代码难以复用,增加了开发和运维的成本。
  • 复杂分析业务支持不足:传统的流处理引擎可能对复杂的分析业务支持有限,例如与大规模的离线维度表进行关联查询、处理多层嵌套的数据结构或者进行历史数据的回溯分析等。这些操作在流处理环境中可能效率低下或者实现难度较大。
  • 高昂的Debug成本:由于流处理系统通常包含多个组件(如消息队列、流处理引擎、存储系统等),排查问题时需要考虑的环节较多,这增加了调试和故障排除的难度。此外,理解和掌握流处理特有的概念和技术(如窗口函数、事件时间处理等)也是对开发者的一项挑战。


相比之下,AnalyticDB PostgreSQL版通过提供流批一体的实时数据处理能力,结合企业数据智能平台形成一站式离线+实时数仓解决方案,试图解决上述问题。


2. 产品介绍


2.1 AnalyticDB PostgreSQL

云原生数据仓库AnalyticDB PostgreSQL版是一款由阿里云提供的云原生的大数据分析型数据库服务。提供简单、快速、经济高效的PB级云端数据仓库解决方案。兼容Greenplum开源数据仓库,MPP全并行架构,广泛兼容PostgreSQL/Oracle的语法生态。实现了对海量数据的即席查询分析、ETL 处理及可视化探索,是各行业有竞争力的云上数据仓库解决方案。

2024-01-12 at 17.28.jpg

AnalyticDB PostgreSQL版提供了实时物化视图功能,相较于普通(非实时)物化视图,实时物化视图无需手动调用刷新命令,即可实现数据更新时自动同步刷新物化视图。当基表发生变化时,构建在基表上的实时物化视图将会自动更新。您还可以在实时物化视图上再创建实时物化视图,当基表发生变化时,相关级联的实时物化视图也会自动更新。基于此特性可以方便地构建分析数据的实时ETL处理链路。

使用CREATE INCREMENTAL MATERIALIZED VIEW命令创建一个名为mv实时物化视图,示例如下:

CREATE INCREMENTAL MATERIALIZED VIEW mv AS SELECT * FROM base WHERE id > 40;

2.2 企业数据智能平台

企业数据智能平台是构建数据智能的全流程平台。提供数据汇聚、数据处理、数据质量管控、数据资产管理、数据资产服务与共享、智能分析等核心功能。平台集成了多项先进的技术和功能,旨在提升数据使用效率,降低数据计算成本,并最大化数据的业务价值。

  • 流批一体数据同步:通过支持流处理和批处理的一体化数据同步,无缝对接各种数据源,实现实时和历史数据的统一管理和分析,简化数据管道和运维工作。
  • 异构计算混合编排调度:支持离线、流式、在线任务的编排和调度,支持常见的数据库,大数据存储引擎,及计算引擎。如MySQL、PostgreSQL、Oracle、Hive、Spark、Flink、自定义作业等。可以根据数据处理任务的特性和需求,灵活选择和优化计算引擎,以实现最佳的性能和成本效益。

2024-01-12 at 17.29.jpg

  • 全局元数据图谱:建立全面的全局元数据图谱,可以清晰地展示数据资产的关系和流向,便于数据治理、数据发现和数据质量控制,提升数据的可用性和可信度。
  • 安全合规保障:实现多层数据安全保障措施,包括数据加密、访问控制、审计日志和合规性检查等,确保数据在采集、存储、处理和使用的全生命周期中的安全和隐私保护。

平台能帮助金融、政府及企业客户快速构建智能数据中台,实现数据资源统一管理,挖掘数据价值,优化业务决策,降低企业成本。同时,平台的云原生设计和弹性扩展能力也确保了其能够适应不断变化的业务需求和市场环境,为企业的数字化转型提供强大的技术支持和保障。

2.3 核心优势

AnalyticDB PostgreSQL版+企业数据智能平台,提供流批一体的一站式实时数仓解决方案,主要有如下优势:

  • 一体化架构:通过实时物化视图的机制,实现了流处理和批处理的融合,只需要一套系统、一份数据、一次写入,简化了开发和运维的工作,提高了资源利用率。
  • 增强的分析能力:AnalyticDB PostgreSQL版高度兼容Oracle语法,支持PL/SQL存储过程,这使得它能够更好地处理复杂的分析业务,包括与大规模维度表的关联查询和多层次的数据处理。
  • 更易Debug:由于在一个统一的系统中处理流和批数据,调试和问题排查可能会变得更加直接和简便。同时,对于用户来说,可以继续使用熟悉的SQL语言进行查询和分析,降低了学习和使用新概念的门槛。


3. 典型场景实践


3.1 业务场景

下面我们以“超市销售订单数据分析”来演示基于 AnalyticDB for PostgreSQL开发流批一体结合的任务。订单数据由交易系统产生,并存储在业务TP库中,通过数据智能平台的实时同步功能同步到分析库AnalyticDB for PostgreSQL中。订单数据需要与维表(用户表、商品表、店铺表)关联产生最终的交易明细数据,同时维表数据会每天定时更新,基于订单表+维表构建物化视图,能得到实时的订单明细。

image.png

3.2 开发

在环境准备阶段,在数据智能平台-系统设置中创建工作组,并将业务库(MySQL)和分析库(AnalyticDB for PostgreSQL)注册到工作组。

image.png

在协同-数据开发-场景模式中创建场景。场景是一个DAG,场景中每个节点表示一个数据处理动作。平台支持丰富的节点类型。包括处理离线任务的SQL类节点、Spark、Flink等计算节点,也包括处理自定义作业的Elastic Job和Elastic Service节点。

image.png image.png image.png

在场景中拖入“同步节点”,配置业务库中订单表到分析库中的订单表同步。“AnalyticDB PostgreSQL”节点并编写sql,实现维表更新逻辑,在调度配置中设置按天调度。

image.png


拖入“AnalyticDB PostgreSQL Stream”节点,双击打开编辑器,编写创建实时物化视图的SQL。

image.png

-- Author: dtboost
 -- CreateDate: 2023-12-13 11:22:41
 -- Description: 
create or replace incremental materialized view v_order_wide as
select o.order_id,
       o.order_time,
       to_char(o.order_time, 'YYYY-MM-DD') as order_date,
       o.customer_id,
       c.customer_name,
       o.store_id,
       s.store_name,
       o.product_id,
       p.product_name,
       o.original_price,
       o.selling_price,
       round(cast(o.selling_price as decimal)/cast(o.original_price as decimal), 1) as discount
from t_order o
    left join t_customer c on o.customer_id = c.customer_id
    left join t_store s on o.store_id = s.store_id
    left join t_product p on o.product_id = p.product_id;

场景开发完成后上线,场景中的离线SQL节点会按照调度配置定时运行,流式节点如“AnalyticDB PostgreSQL Stream”会立即上线,在数据库中生成对应的物化视图,可以在数据查询中查看该视图的数据。

image.png

3.3 运维

切换到协同-运维监控菜单,可对已经上线的场景进行运维。

image.png

点击具体的节点,可以查看节点的任务详情、实例内容等。

image.png

3.3 总结

上面案例,我们展示了如何通过AnalyticDB PostgreSQL版+企业数据智能平台完成流批一体的一站式数据开发。目前两款产品已经正式发布上线,可以通过AnalyticDB for PostgreSQL控制台-数据平台进入购买,也可以在AnalyticDB for PostgreSQL官网进行购买。


如果您在使用AnalyticDB for PostgreSQL企业数据智能平台产品时有任何疑惑或建议,可以使用钉钉搜索51855001136,加入【官方服务】ADBPG-企业数据智能平台官方支持群交流群,我们会有专业的技术支持工程师在线答疑。

2024-01-15 at 11.02.jpg

作者介绍
目录

相关产品

  • 云原生数据仓库AnalyticDB MySQL版
  • 云原生数据仓库 AnalyticDB PostgreSQL版