BpFile(id=141, bpId=155, name=基于Flink的资讯场景实时数仓, author=null, keyword=实时计算,实时ETL,实时数仓,资讯, description=针对资讯聚合类业务场景,Step by Step介绍如何搭建实时数仓, position=null, ossUrl=bp-XO7ORY5C3GORVDBZ.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=1, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
场景描述
本实践针对资讯聚合类业务场景,Step by Step介绍
如何搭建实时数仓。
解决问题
1.如何搭建实时数仓。
2.通过实时计算Flink实现实时ETL和数据流。
3.通过实时计算Flink实现实时数据分析。
4.通过实时计算Flink实现事件触发。
产品列表
⚫实时计算
⚫专有网络VPC
⚫云数据库RDSMySQL版
⚫分析型数据库MySQL版
⚫消息队列Kafka
⚫对象存储OSS
⚫NAT网关
⚫DataV数据可视化
, templateId=SC6XI2SHY50MBEYO, freetry=null, visitTime=null, visitCount=null, video_url=null, buttonName=null, buttonUrl=null, targetId=SC6XI2SHY50MBEYO, partner=null, partnerUrl=null, partnerLogo=null, cooperation=, cooperationList=null)
1
基于 Flink的资讯场景实时数仓 最佳实践
业务架构
场景描述
产品列表
本实践针对资讯聚合类业务场景,Step by Step介绍
⚫ 实时计算
如何搭建实时数仓。
⚫ 专有网络 VPC
⚫ 云数据库 RDS MySQL版
⚫ 分析型数据库 MySQL版
解决问题
⚫ 消息队列 Kafka
⚫ 对象存储 OSS
1. 如何搭建实时数仓。
⚫ NAT网关
2. 通过实时计算 Flink实现实时 ETL和数据流。
⚫ DataV数据可视化
3. 通过实时计算 Flink实现实时数据分析。
4. 通过实时计算 Flink实现事件触发。
2云服务器 ECS(产品名称) 文档模板(手册名称)/文档版本信息
阿里云
基于Flink的资讯场景实时数仓
最佳实践
文档版本:20200401(发布日期)
文档版本:20150122(发布日期) I
3基于 Flink的资讯场景实时数仓 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 基于 Flink的资讯场景实时数仓最佳实践
文档编号 155
文档版本 V1.1
版本日期 2020-04-01
文档状态 -
制作人 懿弘
审阅人 敬海、久诚
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2020-03-27 懿弘 敬海、久诚 创建
V1.1 2020-04-01 筱晖 懿弘 文档工程师优化
文档版本:20200401(发布日期) I
4基于 Flink的资讯场景实时数仓 前言
前言
概述
本实践针对资讯聚合类业务场景,Step by Step介绍了如何搭建实时数仓。
应用范围
⚫ 通过实时计算 Flink实现实时 ETL和数据流。
⚫ 通过实时计算 Flink实现实时数据分析。
⚫ 通过实时计算 Flink实现事件触发。
名词解释
⚫ 实时计算:实时计算(Alibaba Cloud Realtime Compute, Powered by Ververica)
是阿里云提供的基于 Apache Flink构建的企业级大数据计算平台。在 PB级别的
数据集上可以支持亚秒级别的处理延时,赋能用户标准实时数据处理流程和行业
解决方案;支持 Datastream API作业开发,提供了批流统一的 Flink SQL,简化
BI场景下的开发;可与用户已使用的大数据组件无缝对接,更多增值特性助力企
业实时化转型。更多信息,请参见:www.aliyun.com/product/bigdata/product/sc
⚫ DataV数据可视化:DataV旨让更多的人看到数据可视化的魅力,帮助非专业的
工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业
务监控、风险预警、地理信息分析等多种业务的展示需求。更多信息,请参见:
www.aliyun.com/product/bigdata/datav
⚫ VPC:Virtual Private Cloud,简称 VPC。基于阿里云创建的自定义私有网络, 不
同的专有网络之间二层逻辑隔离,可以在自己创建的专有网络内创建和管理云产
品实例,比如 ECS、负载均衡、RDS等。在创建前,您需要结合具体业务,规划
VPC和交换机的数量及网段等。更多信息,请参见:www.aliyun.com/product/vpc
⚫ 消息队列 Kafka版:是阿里云基于 Apache Kafka 构建的高吞吐量、高可扩展性
的分布式消息队列服务,广泛用于日志收集、监控数据聚合、流式数据处理、在线
和离线分析等,是大数据生态中不可或缺的产品之一。阿里云提供全托管服务,用
户无需部署运维,更专业、更可靠、更安全。更多信息,请参见:
www.aliyun.com/product/kafka
⚫ RDS:Relational Database Service,简称 RDS。阿里云关系型数据库是一种稳
定可靠、可弹性伸缩的在线数据库服务。基于阿里云分布式文件系统和 SSD盘高
文档版本:20200401(发布日期) III
5基于 Flink的资讯场景实时数仓 前言
性能存储,RDS支持 MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus
Advanced Server,高度兼容 Oracle数据库)和 MariaDB TX引擎,并且提供了
容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦
恼。更多信息,请参见:www.aliyun.com/product/rds/mysql
⚫ 分析型数据库 MySQL版:分析型数据库 MySQL版(AnalyticDB for MySQL)是
一种高并发低延时的 PB级实时数据仓库,全面兼容 MySQL协议以及 SQL:2003
语法标准,可以毫秒级针对万亿级数据进行即时的多维分析透视和业务探索。更
多信息,请参见:www.aliyun.com/product/ads
⚫ OSS:对象存储 OSS 是海量、安全、低成本、高可靠的云存储服务,提供
99.9999999999%的数据可靠性。使用 RESTful API 可以在互联网任何位置存储
和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。更多
信息,请参见:www.aliyun.com/product/oss
文档版本:20200401(发布日期) IV
6基于 Flink的资讯场景实时数仓 目录
目录
文档版本信息 .............................................................................................................................................................. I
法律声明 ..................................................................................................................................................................... II
前言 ............................................................................................................................................................................ III
目录 ............................................................................................................................................................................. V
最佳实践概述 ............................................................................................................................................................. 1
前置条件 ..................................................................................................................................................................... 2
演示环境说明 ............................................................................................................................................................. 3
1. 实时数仓介绍 ..................................................................................................................................................... 4
1.1. 什么是实时数仓 ................................................................................................................................. 4
1.2. 实时数仓技术架构 ............................................................................................................................. 4
2. 资讯场景介绍与技术架构设计 ......................................................................................................................... 7
2.1. 业务场景 ............................................................................................................................................. 7
2.2. 业务目标 ............................................................................................................................................. 7
2.3. 技术架构 ............................................................................................................................................. 8
3. 基础环境部署 ................................................................................................................................................... 10
3.1. 创建专有网络 VPC ............................................................................................................................ 10
3.2. 部署云数据库 RDS ............................................................................................................................ 13
3.2.1. 创建云数据库 RDS MySQL版实例 ........................................................................................... 13
3.2.2. 创建数据库和账号 ................................................................................................................... 17
3.2.3. 设置白名单 ............................................................................................................................... 20
3.2.4. 创建表和构造模拟数据............................................................................................................ 21
3.3. 部署分析型数据库 MySQL ............................................................................................................... 24
3.3.1. 创建 AnalyticDB for MySQL集群 .............................................................................................. 24
3.3.2. 创建数据库账号 ....................................................................................................................... 26
3.3.3. 申请外网 ................................................................................................................................... 28
3.3.4. 设置白名单 ............................................................................................................................... 28
3.3.5. 创建数据库和表 ....................................................................................................................... 29
3.4. 部署消息队列 Kafka .......................................................................................................................... 34
3.4.1. 创建消息队列 Kafka实例 ......................................................................................................... 34
3.4.2. 创建 MetaData .......................................................................................................................... 38
3.4.3. Topic和消息查看 ...................................................................................................................... 40
3.4.4. 修改安全组 ............................................................................................................................... 42
3.5. 创建对象存储 OSS ............................................................................................................................ 43
3.6. 部署实时计算 Flink ........................................................................................................................... 45
3.6.1. 创建实时计算集群 ................................................................................................................... 45
3.6.2. 创建项目 ................................................................................................................................... 49
3.7. 部署 NAT网关 ................................................................................................................................... 50
3.7.1. 创建 NAT网关 ........................................................................................................................... 50
3.7.2. 创建并绑定弹性公网 IP ........................................................................................................... 52
3.7.3. 创建 SNAT条目 ......................................................................................................................... 55
3.8. 部署云服务器 ECS ............................................................................................................................. 57
文档版本:20200401(发布日期) V
7基于 Flink的资讯场景实时数仓 目录
3.8.1. 创建云服务器 ECS ..................................................................................................................... 57
3.8.2. 部署 Kafka客户端 ..................................................................................................................... 62
3.9. 开通 DataV数据可视化 .................................................................................................................... 65
4. 实时数仓搭建 ................................................................................................................................................... 67
4.1. 数据采集 ........................................................................................................................................... 67
4.2. 数据加工 ........................................................................................................................................... 68
4.2.1. 原始数据预处理 ....................................................................................................................... 68
4.2.2. 明细数据层生成 ....................................................................................................................... 75
4.2.2.1. 自定义函数 UDX开发 ....................................................................................................... 75
4.2.2.2. 明细数据层作业开发及运维 ............................................................................................ 79
4.3. 数据分析 ........................................................................................................................................... 85
4.3.1. 计算当天实时 UV/PV ................................................................................................................ 85
4.3.2. 计算当天各类目实时 PV/UV .................................................................................................... 86
4.3.3. 计算当天各类目实时曝光、点击、点赞、打赏次数,以及打赏总金额 ............................ 88
4.3.4. 计算当天 TopN PV的热门类目 ................................................................................................ 90
4.3.5. 计算当天 TopN PV的热门文章 ................................................................................................ 92
4.3.6. 计算当天打赏总数 TopN类目 ................................................................................................. 93
4.3.7. 计算当天打赏总数 TopN作者 ................................................................................................. 94
4.3.8. 实时分析用户地理分布............................................................................................................ 96
4.3.9. 实时分析用户短期行为偏好.................................................................................................... 98
5. 业务系统 ......................................................................................................................................................... 101
5.1. 资讯业务指标 DataV实时大屏 ...................................................................................................... 101
5.1.1. 创建可视化应用 ..................................................................................................................... 101
5.1.2. 编辑可视化应用 ..................................................................................................................... 103
5.1.2.1. 添加数据源 ..................................................................................................................... 103
5.1.2.2. 修改组件和数据.............................................................................................................. 105
5.1.3. 预览和发布可视化应用.......................................................................................................... 116
5.2. 事件驱动推荐 ................................................................................................................................. 118
文档版本:20200401(发布日期) VI
8基于 Flink的资讯场景实时数仓 最佳实践概述
最佳实践概述
场景描述
本文首先介绍什么是实时数仓以及相关技术架构,接着介绍了资讯聚合类业务的典型
场景及其业务目标,并据此设计了相应的技术架构;然后 Step by Step介绍了如何部
署基础环境和搭建实时数仓,并介绍业务系统如何使用实时数仓。
方案架构
方案优势
⚫ 通过实时计算 Flink + 消息队列 Kafka + AnalyticDB for MySQL搭建实时数仓,
实现实时 ETL和数据流、实时数据分析、事件触发应用。
⚫ 实时计算 Flink性能卓越:作业可达百万吞吐,计算可达秒级延迟,让流计算真正
规模化、实时化;计算可水平扩展,完全弹性伸缩扩展,让流计算真正弹性化、自
动化;关键指标超越 Storm的性能 6到 8倍,计算成本大大低于开源软件,让流
计算真正普世化、平民化。
⚫ 实时计算 Flink提供 SQL语义的流式数据分析能力(Flink SQL),大幅降低流数据
分析门槛。
⚫ 实时计算 Flink独享模式可开放 UDF/UDAF/UDTF接口,为用户提供更强大的数
据处理能力。
文档版本:20200401(发布日期) 1