阿里云实时数据仓库Hologres&Flink

  1. 实时数仓Hologres特点

专注实时场景:数据实时写入、实时更新,写入即可见,与Flink原生集成,支持高吞吐、低延时、有模型的实时数仓开发,满足业务洞察实时性需求。

亚秒级交互式分析:支持海量数据亚秒级交互式分析,无需预计算,支持多维分析、即席分析、探索式分析、MaxCompute加速分析,满足所见即所得分析体验。

统一数据服务出口:支持多维分析、高性能点查、数据检索等多个场景,支持负载隔离,简化数据架构,统一数据访问接口,实践分析服务一体化(HSAP)。

开放生态:标准SQL协议,无缝对接主流BI和SQL开发框架,无需应用重写。支持数据湖场景,支持JSON等半结构化数据,OSS、DLF简易入仓。

  1. 实时计算Flink服务

全托管Flink服务:开箱即用、开发远维全周期、计费灵活

丰富的企业级能力:流批一体的一站式开发运维平台、Flink CDC实时入湖入仓、动态CEP助力实时风控/营销、作业自动调优充分利用资源、智能冷断快速定位

性能强劲:内核引擎优化: CPU超秒数十万记录处理能力、Nexmark 测试性能技开源提升200%、状态存储后端优化

100%兼容开源:100%兼容Apache Flink、支持开源 Flink平滑迁移上云、无缝对接主流开源大教据生态

开放被集成能力强:自定义连按器、UXF能力扩展、Open API帮助用户集成自身系统、用户开发能力扩展与沉淀复用、用户自身系统集成

业界认可:中国信通院权威认证、中国唯一进入 Forrester 象限的实时流计算产品、金融实时数仓方案入围工信部信创典型目录

  1. 数据仓库概念

数据仓库定义 ( Data Warehouse ):为企业所有决策制定过程,提供所有系统数据支持的战略集合。

传统的离线数仓无法实现当天数据的及时分析数据,所以需要开发实时数仓开填补空缺。

  1. 阿里云技术框架

阿里云产品 简介 类比

Flink实时计算平台 大数据计算框架 Hadoop集群+Flink+调度器

Hologres 大数据存储框架 Kafka+Redis+HBase+ClickHouse

DataHub 数据流存储 Kafka+元数据管理

RDS 关系型数据库 MySql

DataV 可视化数据展示工具 Tableau、Echarts、Kibana

  1. 系统数据流程设计

  2. Hologres的购买和基础介绍

后来我总是找不到实例在哪。(我等了两个小时终于实例出来啦)

点击登录实例

点击连接实例

双击 登录库

可以编辑SQL

SELECT table_name

FROM information_schema.tables

WHERE table_schema = 'public' -- 可以根据需要更改模式名称

AND table_type = 'BASE TABLE';

  1. Flink实时计算

开通之后点击立即试用

  1. 数据总线Datahub

数据总线datahub是阿里云免费提供的服务,相当于大数据框架中的kafka,可以用作数据的缓存。

进入到datahub的主页面之后,点击项目管理,之后再点击新建项目。填写项目名称之后即可完成创建。

  1. 业务表

一共7个表

  1. 同步策略

数据同步策略的类型包括:全量同步(每天把完整的数据同步)、增量同步(有一条数据变化就同步过来)

实时数仓统一都要选择增量同步,细节在于维度表数据需要保持和业务数据库始终一致,同步修改和删除。而业务流程数据需要记录下每一次数据的变化。

  1. RDS服务器购买

阿里云关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。

使用的都是内网

导入数据库

  1. ODS数据同步

ODS层的数据同步需要将数据从业务表格监控数据的实时变化,将变化数据写入到DataHub中,同步业务表格RDS(MySQL)的变更数据有多种方法,较为简单的方法,可以直接使用阿里云的DataWorks数据同步功能,此处选择更加泛用的flinkCDC方法来实现。

  1. FlinkCDC

CDC是Change Data Capture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件(datahub,类似kafka)中以供其他服务进行订阅及消费。

CDC主要分为基于查询和基于Binlog两种方式,我们主要了解一下这两种之间的区别:

基于批处理/基于流处理

Flink社区开发了 flink-cdc-connectors 组件,这是一个可以直接从 MySQL、PostgreSQL 等数据库直接读取全量数据和增量变更数据的 source 组件。目前也已开源,

  1. Flink Stream API完成数据同步

在数据总线DataHub中,先创建项目gmall_realtime,之后创建主题ods_table_ri用于接收数据,同时填写元数据信息。

13.1 创建IDEA项目

解决错误 "Plugin 'maven-shade-plugin:3.1.1' not found" 的方法详解

找到对应文件夹,更改成对应的版本号

解决方式是,删掉.idea这个文件夹,再导入一次项目

运行之后出现,需要把依赖添加进来

13.2 创建工具类

推荐使用阿里云官方提供的DataHubSink写出数据,可以直接添加DataHub的元数据对应。

下面这些信息都在阿里的DataHub中找信息,使用的是外网

运行CDCToDataHub,就可以看到在官网上的结果。

13.3 打包上传

点击Maven的packeage功能。

在Flink平台部署jar包

测试是否能连通DataHub?

但是我这里是报错的

需要买公网IP,才不会报错

DataHub成功访问

RDS访问成功

启动成功

  1. DIM层

本次实时数仓将维度表存放到实时数仓hologres中,而维度表的原始数据在RDS中,所有DIM层的搭建就是将RDS中的维度表同步至hologres中,同时要能够实现实时更新的功能。

14.1 ​​​​​​​添加RDS的元数据连接

添加RDS和hologres的catalog元数据,让flink实时计算平台能够连接对应的数据存储。

14.2 ​​​​​​​添加hologres的元数据连接

使用内网vpc的endpoint,对应的dbname

14.3 ​​​​​​​创建hologres的维度表

按照行存,分区分组

14.4 ​​​​​​​创建实时同步数据到hologres

创建集群

运行成功

提交到hologres中

点击部署

点击启动

启动成功之后,可以看到数据已经发送过来了

全部的部署

  1. DWD层

新建文件夹

复制with里面的内容

15.1 读取ODS业务数据

造数据

得到新生成的数据

15.2 ​​​​​​​Interval join合并业务表

之后进行interval join将订单表和订单明细表合并起来。文档地址:

IntervalJoin语句_实时计算Flink版-阿里云帮助中心

按住滚轮往下滑, ctrl + shift + '->' 就可以选到每行首个单词

使用 Interval join合并业务表 的时候出现这个问题


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_42322991/article/details/134825170

相关推荐
Pocker_Spades_A1 小时前
阿里云-通义灵码:在 PyCharm 中的强大助力(下)
ide·python·阿里云·pycharm
Atlim2 小时前
flink cdc使用flink sql方式运行一直报Make sure a planner module is on the classpath
大数据·sql·flink
小刘鸭!2 小时前
Flink的多流转换(分流-侧输出流、合流-union、connect、join)
大数据·flink
奔波儿灞爱霸波尔奔4 小时前
人工智能之基于阿里云进行人脸特征检测部署
人工智能·阿里云·云计算
goTsHgo14 小时前
Hive on Spark 离线数据仓库中拉链表全流程使用
数据仓库·hive·spark
小刘鸭!18 小时前
Flink窗口window详解(分类、生命周期、窗口分配器、窗口函数、触发器)
大数据·flink
出发行进18 小时前
Hive其九,排名函数,练习和自定义函数
大数据·数据仓库·hive·hadoop·数据分析
马剑威(威哥爱编程)20 小时前
阿里云DataWorks产品使用
阿里云·云计算·dataworks
SelectDB技术团队1 天前
一文了解多云原生的现代化实时数仓 SelectDB Cloud
大数据·数据库·数据仓库·云原生·云计算
StarRocks_labs1 天前
StarRocks 存算分离在得物的降本增效实践
数据库·数据仓库·湖仓