阿里云实时数据仓库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

相关推荐
Yz98762 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康2 小时前
大数据-230 离线数仓 - ODS层的构建 Hive处理 UDF 与 SerDe 处理 与 当前总结
java·大数据·数据仓库·hive·hadoop·sql·hdfs
武子康3 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
时差9533 小时前
Flink Standalone集群模式安装部署
大数据·分布式·flink·部署
锵锵锵锵~蒋3 小时前
实时数据开发 | 怎么通俗理解Flink容错机制,提到的checkpoint、barrier、Savepoint、sink都是什么
大数据·数据仓库·flink·实时数据开发
二进制_博客3 小时前
Flink学习连载文章4-flink中的各种转换操作
大数据·学习·flink
大数据编程之光3 小时前
Flink入门介绍
大数据·flink
小曲曲6 小时前
接口上传视频和oss直传视频到阿里云组件
javascript·阿里云·音视频
武子康11 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
为什么每天的风都这么大12 小时前
Vscode/Code-server无网环境安装通义灵码
ide·vscode·阿里云·编辑器·ai编程·code-server