BpFile(id=314, bpId=188, name=基于Flink+ClickHouse构建实时游戏数据分析, author=null, keyword=实时计算,游戏数据分析,ClickHouse,Flink,Kafka,Filebeat, description=在互联网、游戏行业中,常常需要对用户行为日志进行分析,通过数据挖掘,来更好地支持业务运营,比如用户轨迹,热力图,登录行为分析,实时业务大屏等。当业务数据量达到千亿规模时,常常导致分析不实时,平均响应时间长达10分钟,影响业务的正常运营和发展。
本实践介绍如何快速收集海量用户行为数据,实现秒级响应的实时用户行为分析,并通过实时流计算、云数据库ClickHouse等技术进行深入挖掘和分析,得到用户特征和画像,实现个性化系统推荐服务。
, position=null, ossUrl=bp-4I4ANQ216APIMADC.pdf, tags=null, level=null, tagList=null, products=null, productList=null, hotspot=null, oneClick=0, createTime=null, modifiedTime=null, timeConsuming=null, status=1, pdfDescription=
在互联网、游戏行业中,常常需要对用户行为日志进行分析,通过数据挖掘,来更好地支持业务运营,比如用户轨迹,热力图,登录行为分析,实时业务大屏等。当业务数据量达到千亿规模时,常常导致分析不实时,平均响应时间长达10分钟,影响业务的正常运营和发展。
本实践介绍如何快速收集海量用户行为数据,实现秒级响应的实时用户行为分析,并通过实时流计算Flink/Blink、云数据库ClickHouse等技术进行深入挖掘和分析,得到用户特征和画像,实现个性化系统推荐服务。
通过云数据库ClickHouse替换原有Presto数仓,对比开源Presto性能提升20倍。
利用云数据库ClickHouse极致分析性能,千亿级数据分析从10分钟缩短到30秒。
云数据库ClickHouse批量写入效率高,支持业务高峰每小时230亿的用户数据写入。
云数据库ClickHouse开箱即用,免运维,全球多Region部署,快速支持新游戏开服。
Flink+ClickHouse+QuickBI
, templateId=null, freetry=, visitTime=null, visitCount=null, video_url=, buttonName=null, buttonUrl=null, targetId=null, partner=null, partnerUrl=null, partnerLogo=null, cooperation=, cooperationList=null)
1
基于 Flink+ClickHouse构建实时游戏数据分析 最佳实践
业务架构 背景描述
在互联网、游戏行业中,常常需要对用户行
为日志进行分析,通过数据挖掘,来更好地
支持业务运营,比如用户轨迹,热力图,登
录行为分析,实时业务大屏等。当业务数据
量达到千亿规模时,常常导致分析不实时,
平均响应时间长达 10分钟,影响业务的正
常运营和发展。
本实践介绍如何快速收集海量用户行为数
据,实现秒级响应的实时用户行为分析,并
通过实时流计算、云数据库 ClickHouse等
技术进行深入挖掘和分析,得到用户特征和
画像,实现个性化系统推荐服务。
产品列表
最佳实践频道 阿里云最佳实践生态群
⚫ 专有网络 VPC
⚫ 弹性公网 IP EIP
⚫ 云服务器 ECS
⚫ 消息队列 Kafka版
⚫ 云数据库 ClickHouse
⚫ 实时计算 Flink版
⚫ Quick BI数据可视化分析平台
2云服务器 ECS(产品名称) 文档模板(手册名称)/文档版本信息
阿里云
基于Flink+ClickHouse
构建实时游戏数据分析
最佳实践
文档版本:20201224
文档版本:20150122(发布日期) II
3基于 Flink+ClickHouse构建实时游戏数据分析 文档版本信息
文档版本信息
文本信息
属性 内容
文档名称 基于 Flink+ClickHouse构建实时游戏数据分析
文档编号 184
文档版本 V1.0
版本日期 2020-12-24
文档状态 对外发布
制作人 七凌、凤豪、胡零
审阅人 阿瑟、天裵、弦望
文档变更记录
版本编号 日期 作者 审核人 说明
V1.0 2020-12-24 七凌、凤豪、胡零 阿瑟、天裵、弦望 创建
文档版本:20201224 I
4基于 Flink+ClickHouse构建实时游戏数据分析 前言
前言
产品介绍
⚫ VPC:专有网络 VPC(Virtual Private Cloud)是用户基于阿里云创建的自定义私
有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创
建和管理云产品实例,比如 ECS、负载均衡、RDS 等。更多信息,请参见:
https://www.aliyun.com/product/vpc
⚫ EIP:独立的公网 IP资源,可以与阿里云专有网络 VPC类型的 ECS、NAT网关、
ENI网卡、私网负载均衡 SLB绑定,并可以动态解绑,实现公网 IP与 ECS、NAT
网关、ENI 网卡、SLB 的解耦,满足灵活管理的要求。更多信息,请参见:
https://www.aliyun.com/product/eip
⚫ ECS:云服务器(Elastic Compute Service,ECS)是一种简单高效、处理能力可
弹性伸缩的计算服务。帮助您构建更稳定、安全的应用,提升运维效率,降低 IT
成本,使您更专注于核心业务创新。详见:https://www.aliyun.com/product/ecs
⚫ 消息队列 Kafka版:消息队列 Kafka 版是阿里云基于 Apache Kafka 构建的高
吞吐量、高可扩展性的分布式消息队列服务,广泛用于日志收集、监控数据聚合、
流式数据处理、在线和离线分析等,是大数据生态中不可或缺的产品之一,阿里云
提供全托管服务,用户无需部署运维,更专业、更可靠、更安全。更多信息,请参
见:https://www.aliyun.com/product/kafka
⚫ 云数据库 ClickHouse:分布式实时分析型列式数据库服务。高性能,开箱即用,
企业特性支持。应用于流量分析,广告营销分析,行为分析,人群划分,客户画像,
敏捷 BI,数据集市,网络监控,分布式服务和链路监控等业务场景。更多信息,
请参见:https://www.aliyun.com/product/clickhouse
⚫ 实时计算 Flink 版:实时计算 Flink 版(Alibaba Cloud Realtime Compute for
Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业
级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球
统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。更多信
息,请参见:https://www.aliyun.com/product/bigdata/sc
⚫ Quick BI 数据可视化分析平台:阿里云上客户都在用的 BI产品——无缝对接各类
云上数据库和自建数据库,大幅提升数据分析和报表开发效率,0代码鼠标拖拽式
文档版本:20201224 III
5基于 Flink+ClickHouse构建实时游戏数据分析 前言
操作交互,让业务人员也能轻松实现海量数据可视化分析。更多信息,请参见:
https://www.aliyun.com/product/bigdata/bi
文档版本:20201224 IV
6基于 Flink+ClickHouse构建实时游戏数据分析 目录
目录
文档版本信息 .............................................................................................................................................................. I
法律声明 ..................................................................................................................................................................... II
前言 ............................................................................................................................................................................ III
目录 ............................................................................................................................................................................. V
最佳实践概述 ............................................................................................................................................................. 1
前置条件 ..................................................................................................................................................................... 3
1. 关键技术选型 ..................................................................................................................................................... 4
1.1. ClickHouse vs Presto ............................................................................................................................ 4
1.2. ClickHouse vs ADB/Hologres ................................................................................................................ 6
2. 架构设计 ............................................................................................................................................................. 7
2.1. 架构图 ................................................................................................................................................. 7
2.2. 核心模块 ............................................................................................................................................. 7
3. 基础环境部署 ..................................................................................................................................................... 9
3.1. 部署基础架构 ..................................................................................................................................... 9
3.2. 部署消息队列 Kafka .......................................................................................................................... 21
3.3. 部署云数据库 ClickHouse ................................................................................................................. 25
3.3.1. 创建并配置 ClickHouse集群 .................................................................................................... 25
3.3.2. 初始化表结构 ........................................................................................................................... 32
4. 游戏服构建 ....................................................................................................................................................... 36
5. 日志采集 ........................................................................................................................................................... 42
6. 实时流处理 ....................................................................................................................................................... 47
6.1.1. 集群创建 ................................................................................................................................... 47
6.1.2. 作业开发 ................................................................................................................................... 51
6.1.3. 作业发布 ................................................................................................................................... 58
7. 数据导入 ........................................................................................................................................................... 62
7.1. ClickHouse-JDBC ................................................................................................................................ 62
7.2. Flink-Connector-ClickHouse ............................................................................................................... 62
8. 数据可视化 ....................................................................................................................................................... 64
8.1.1. 开通服务 ................................................................................................................................... 64
8.1.2. 配置连接数据源 ....................................................................................................................... 65
8.1.3. 数据建模 ................................................................................................................................... 68
8.1.4. 可视化仪表板 ........................................................................................................................... 69
文档版本:20201224 V
7基于 Flink+ClickHouse构建实时游戏数据分析 最佳实践概述
最佳实践概述
业务场景
互联网、游戏中的用户行为频繁且较复杂,系统上线运行一段时间后,可以收集到大
量的用户行为数据,特别是一些爆款游戏,在业务高峰时,能达到每小时 200亿以上
的用户行为数据写入速度。
本实践将模拟某款游戏线上的用户行为数据,基于日志文件和实时产生的行为数据,
我们可以做后续的实时用户行为分析实验,体验这套解决方案的落地实践。
基本需求:
⚫ 从用户行为日志中,统计实时的 PV和 UV
⚫ 统计每小时的访问量(PV),并且对用户进行去重(UV)
说明: 用户行为数据,进一步细分,可分为两大类,一类:用户行为习惯数据,另一类:
业务行为数据。用户的行为习惯包括用户的登录设备(IOS、PC、Android等等),登
录时间点,在线的时长,点击和浏览的页面,页面跳转等等,这些数据往往可直接从
服务器日志中获取。而业务行为数据就是用户在游戏平台中具有业务意义的操作,比
如充值,购买装备等,这些数据往往需要在系统中进行相应的数据埋点。
方案架构
方案优势
⚫ 通过云数据库 ClickHouse替换原有 Presto数仓,对比开源 Presto性能提升 20
文档版本:20201224 1
8基于 Flink+ClickHouse构建实时游戏数据分析 最佳实践概述
倍。
⚫ 利用云数据库 ClickHouse极致分析性能,千亿级数据分析从 10分钟缩短到 30
秒。
⚫ 云数据库 ClickHouse批量写入效率高,支持业务高峰每小时 230亿的用户数据写
入。
⚫ 云数据库 ClickHouse开箱即用,免运维,全球多 Region部署,快速支持新游戏
开服。
文档版本:20201224 2