助力游戏运营数据分析

本文涉及的产品
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
云数据库 RDS SQL Server,基础系列 2核4GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本体验通过多产品组合构建了游戏数据运营分析平台,提供全面的游戏运营指标分析功能,并有效的分析渠道效果。更加有效地掌握游戏运营状态,也可充分利用数据分析的结果改进产品体验,提高游戏收益。

助力游戏运营数据分析

1. 开通RDS服务

登录RDS控制台,购买RDS实例。

创建账号。

创建数据库。本案例创建的RDS数据库为gamedb。

登录数据库。如果是首次登录,需要设置白名单。

创建用于存储游戏业务中用户登录、注册等数据信息表。本案例创建表login_log。

CREATE TABLE `login_log` (
  `id` bigint(22) unsigned NOT NULL AUTO_INCREMENT,
  `uid` varchar(20) NOT NULL,
  `channel_id` int(11) NOT NULL,
  `channel_uid` varchar(50) NOT NULL,
  `timestamp` bigint(22) NOT NULL,
  `type` int(11) NOT NULL,
  `platform` tinyint(2) NOT NULL DEFAULT '1',
  `deviceId` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_timestamp` (`timestamp`),
  KEY `idx_uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

模拟生成写入表的数据。可多次执行以下SQL语句。

drop procedure if exists tpInsert;
DELIMITER //
create procedure tpInsert()
begin
declare i int ;
set i=0;
-- -
while(i< rand() * 100)
do
insert into `login_log`(`uid`, `channel_id`, `channel_uid`, `timestamp`, `type`)
select substr(md5(rand()),1,20) as `uid`, 
case 
  when floor(rand() * 1000)=999 then 6
  when floor(rand() * 10)>=8 then 5
  else floor(rand() * 5) end as `channel_id` ,
substr(md5(rand()),1,48) as `channel_uid`,
unix_timestamp(DATE_SUB(now(),INTERVAL rand() * 60 DAY)) as `timestamp` ,
floor(rand() * 10) as `type` ;
set i=i+1;
select case 
 when date_format(now(), '%H')<=6 then sleep(rand() * 5)
 when date_format(now(), '%H')<=12 then sleep(rand() * 9)
 when date_format(now(), '%H')<=18 then sleep(rand() * 7) 
 when date_format(now(), '%H')<=21 then sleep(rand() * 3) 
 when date_format(now(), '%H')<=23 then sleep(rand() * 1) 
end ;
END while;
-- -
end
//
DELIMITER ;
-- 设置后台任务
drop event if exists second_test_event;
create event second_test_event
on schedule every 1 second
on completion preserve disable
do call tpInsert();
-- 开启后台任务
alter event second_test_event enable;
# 验证数据写入正常
select count(*) from login_log;

创建用于存储游戏业务中玩家购买道具、皮肤等相关的支付信息数据。本案例创建表pay_order。

CREATE TABLE `pay_order` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `order_id` varchar(255) NOT NULL,
  `app_id` int(11) NOT NULL,
  `channel_id` int(11) NOT NULL,
  `channel_uid` varchar(255) NOT NULL,
  `product_id` varchar(255) NOT NULL,
  `product_name` varchar(255) NOT NULL,
  `uid` varchar(20) NOT NULL,
  `amount` int(11) NOT NULL ,
  `status` tinyint(4) NOT NULL DEFAULT '0',
  `pay_time` bigint(20) DEFAULT NULL,
  `create_time` bigint(20) NOT NULL,
  `notify_time` bigint(20) DEFAULT NULL,
  `deviceId` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `uid` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC

2. 开通AnalyticDB服务

购买AnalyticDB MySQL版实例。

创建数据库账号。

单击进入用于本案例的实例。单击登录数据库。

创建日志数据表。本案例创建表为domain_log。建表语句如下:

Create Table `domain_log` (
 `pkid` varchar COMMENT '',
 `uid` varchar COMMENT '',
 `ts` bigint COMMENT '',
 `channel_id` tinyint COMMENT '',
 `message` varchar COMMENT '',
 `message_body` varchar COMMENT '',
 `ts_date` bigint COMMENT '',
 `uxapx` int COMMENT '',
 `uylvly` int COMMENT '',
 `uzexpz` bigint COMMENT '',
 `uagolda` bigint COMMENT '',
 `ubcrysab` int COMMENT '',
 `uccrysic` int COMMENT '',
 `uddshd` bigint COMMENT '',
 `uesopte` bigint COMMENT '',
 `ufprogf` bigint COMMENT '',
 `ugmsprogg` varchar COMMENT '',
 `umplat` tinyint COMMENT '',
 `ummigm` bigint COMMENT '',
 `uimcidi` varchar COMMENT '',
 `version` bigint COMMENT '',
 primary key (pkid,ts_date)
) DISTRIBUTE BY HASH(`pkid`,`ts_date`) INDEX_ALL='Y' COMMENT=''''
PARTITION BY VALUE(date_format(ts_date, '%Y%m%d')) LIFECYCLE 365 
STORAGE_POLICY='MIXED' HOT_PARTITION_COUNT=90;

3. 配置数据同步链路

购买DTS实例。创建同步作业。

配置DTS数据同步链路。源实例选择MySQL,目标实例选择AnalyticDB MySQL版。

选择用于本案例的待同步表,如下图:

定义在AnalyticDB中表的分布列以及主键列,并且启动数据同步,如下图所示:

说明:游戏业务里面往往所有的分析维度均以玩家为维度,故为了保证在数据库里面分析查询的高效性,一般可以选择玩家ID为分布键。

启动DTS预检查,预检查通过后正式开始数据实时同步,如下图所示:

4. 部署ECS-SLS数据采集

登录SLS控制台。创建日志服务Project,如下图所示:

创建日志服务Logstore,如下图所示:

配置数据接入,这次以游戏日志场景最常见的JSON格式为例,如下图所示:

创建机器组,进行JSON日志数据采集,安装Logtail采集客户端,如下图所示:

单击并且安装Logtail客户端,并且确保正常运行,如下图所示:

勾选本案例所用的ECS实例,单击安装,然后确认安装完毕。

往往产生日志数据的ECS服务器有多个,常常会把它加入到一个组内进行管理,创建机器组,如下图所示:

添加机器组,如下图所示:

添加机器组后,一定要检查一下Logtail心跳是否正常,如下图所示:

配置logtail进行日志数据采集,这里主要是需要正确配置日志文件的路径名称,如下图所示:

查询分析配置,这一步是SLS自身的分析功能,本demo用不到,但是SLS规定必须要至少选择一种索引,默认下一步即可,如下图所示:

ECS-SLS数据采集配置接入完成,如下图所示:

5. 部署SLS-AnalyticDB数据投递

登录SLS控制台。单击用于本案例的Project。

在数据处理标签页上选择数据导出到AnalyticDB,单击右侧+,选择“直接投递”即可,如下图所示:

说明:如果您是首次将日志数据投递到AnalyticDB MySQL,需要为AnalyticDB MySQL授权,允许AnalyticDB MySQL访问日志服务。

1) 单击AnalyticDB后的+,系统自动提示您进行授权操作,单击权限。

2) 在云资源访问授权页面,单击同意授权,将角色AliyunAnalyticDBAccessingLogRole授予AnalyticDB MySQL。

配置AnalyticDB投递选项,如下图所示:

各参数说明,详见帮助文档:https://help.aliyun.com/document_detail/149689.html

完成SLS-AnalyticDB投递配置,如下图所示:

6. 游戏数据运营分析举例

本案例通过QuickBI展示通过AnalyticDB MySQL数据源分析的一段时间内的用户活跃趋势。

访问QuickBI控制台

创建数据源。

选择AnalyticDB for MySQL 3.0。

录入数据库信息:

创建成功后,可以看到数据源的情况:

创建数据集。

输入数据集名字并保存数据集:

创建仪表板。

选择数据集并设定维度/度量:

发布为仪表板,并设定水平轴和垂直轴描述。

查看发布结果。

实验链接:https://developer.aliyun.com/adc/scenario/24ec864e6bff46bcb89b72a14c484259

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
13天前
|
监控 供应链 数据可视化
运营数据分析在企业管理中的重要性
本文详述了构建高效营销策略体系的方法,涵盖市场调研、产品定位、差异化策略、品牌建设及数据分析等环节,强调了数据可视化工具在策略执行中的重要作用,旨在帮助企业提升市场竞争力和盈利能力。
|
5月前
|
数据挖掘 测试技术
产品运营方法论问题之运营过程中持续的数据分析如何解决
产品运营方法论问题之运营过程中持续的数据分析如何解决
|
机器学习/深度学习 数据采集 数据可视化
【文末福利】巧用Chat GPT快速提升职场能力:数据分析与新媒体运营
【文末福利】巧用Chat GPT快速提升职场能力:数据分析与新媒体运营
220 0
|
SQL 关系型数据库 MySQL
边锋 x AnalyticDB MySQL:打造一站式游戏数据分析平台
杭州边锋网络技术有限公司是国内领先的休闲游戏开发商、运营商、发行商。20余年来,边锋网络一直是中国棋牌游戏的开拓者和变革者。  边锋网络市场覆盖20余个省份,注册用户过亿,月活跃用户上千万,是国家级重点软件企业(一类)。公司大数据分析系统"反应堆"目前支持着包括雀神广东麻将、边锋斗地主、蜀山四川麻将、功夫川麻等10余款休闲游戏产品;
|
数据挖掘 定位技术 Python
用对线阶段数据分析和预测《英雄联盟》的游戏结果
用对线阶段数据分析和预测《英雄联盟》的游戏结果
536 0
用对线阶段数据分析和预测《英雄联盟》的游戏结果
|
SQL 机器学习/深度学习 分布式计算
基于阿里云平台进行游戏数据分析(三)
在本项目中,我们将基于阿里云平台进行游戏数据分析。本文是这个项目介绍的第三部分,主要介绍对游戏数据进行相关性分析和对比分析,并得出结论。
241 0
基于阿里云平台进行游戏数据分析(三)
|
25天前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
73 4
数据分析的 10 个最佳 Python 库
|
4月前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
91 2
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
217 4
|
4月前
|
机器学习/深度学习 算法 数据挖掘
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析
本文介绍了2023年第二届钉钉杯大学生大数据挑战赛初赛A题的Python代码分析,涉及智能手机用户监测数据分析中的聚类分析和APP使用情况的分类与回归问题。
94 0
2023 年第二届钉钉杯大学生大数据挑战赛初赛 初赛 A:智能手机用户监测数据分析 问题二分类与回归问题Python代码分析

热门文章

最新文章

下一篇
DataWorks