助力游戏运营数据分析

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 本体验通过多产品组合构建了游戏数据运营分析平台,提供全面的游戏运营指标分析功能,并有效的分析渠道效果。更加有效地掌握游戏运营状态,也可充分利用数据分析的结果改进产品体验,提高游戏收益。

助力游戏运营数据分析

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

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
6月前
|
机器学习/深度学习 数据采集 数据可视化
【文末福利】巧用Chat GPT快速提升职场能力:数据分析与新媒体运营
【文末福利】巧用Chat GPT快速提升职场能力:数据分析与新媒体运营
148 0
|
7月前
|
SQL 关系型数据库 MySQL
边锋 x AnalyticDB MySQL:打造一站式游戏数据分析平台
杭州边锋网络技术有限公司是国内领先的休闲游戏开发商、运营商、发行商。20余年来,边锋网络一直是中国棋牌游戏的开拓者和变革者。  边锋网络市场覆盖20余个省份,注册用户过亿,月活跃用户上千万,是国家级重点软件企业(一类)。公司大数据分析系统"反应堆"目前支持着包括雀神广东麻将、边锋斗地主、蜀山四川麻将、功夫川麻等10余款休闲游戏产品;
|
数据挖掘 定位技术 Python
用对线阶段数据分析和预测《英雄联盟》的游戏结果
用对线阶段数据分析和预测《英雄联盟》的游戏结果
399 0
用对线阶段数据分析和预测《英雄联盟》的游戏结果
|
SQL 机器学习/深度学习 分布式计算
基于阿里云平台进行游戏数据分析(三)
在本项目中,我们将基于阿里云平台进行游戏数据分析。本文是这个项目介绍的第三部分,主要介绍对游戏数据进行相关性分析和对比分析,并得出结论。
184 0
基于阿里云平台进行游戏数据分析(三)
|
机器学习/深度学习 SQL 算法
基于阿里云平台进行游戏数据分析(二)
在本项目中,我们将基于阿里云平台进行游戏数据分析。本文是这个项目介绍的第二部分,主要介绍绘制散点图,建立回归模型,检测变量之间的线性关系。
310 0
基于阿里云平台进行游戏数据分析(二)
|
机器学习/深度学习 数据采集 SQL
基于阿里云平台进行游戏数据分析(一)
在本项目中,我们将基于阿里云平台进行游戏数据分析。本文是这个项目介绍的第一部分,主要介绍项目的背景,数据导入与预处理等环节。
320 0
基于阿里云平台进行游戏数据分析(一)
|
2天前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
【4月更文挑战第25天】R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
|
8天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
12 1
|
9天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title(&#39;简单折线图&#39;) plt.xlabel(&#39;X轴&#39;) plt.ylabel(&#39;Y轴&#39;) plt.show() ```
13 1
|
9天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
15 1