游戏数据挖掘开发训练营(一)游戏大数据概述

游戏数据挖掘开发训练营(一)游戏大数据概述

游戏数据

  1. 产品实时利润计算 min 级
  2. 玩家行为 参与率 完成情况 点击率 转化率
  3. 游戏内言论信息 玩家偏好 动机挖掘 海量
  4. 自主查询平台
  5. 游戏货币系统 可视化
  6. 推荐系统

介绍

  1. 工作内容
  2. 大数据开发工具 语言
  3. 游戏从业者的术语

一 为什么需要游戏数据挖掘岗位 (重点介绍算法之前工程方面工作)

  • 职业平衡性
  • 怪物难度
  • 游戏道具投放策略
  • 货币投放
  • 游戏技能
  • 商城出售

如何决策

直觉-->经验-->舆情-->(有了数据) 对比, 趋势, 细分, 聚类, 分类

数据只有相关性, 没有因果性

雷火用户体验中心(数据挖掘工程师)

二 游戏数据挖掘

  • 基于核心运行数据指标(DAU日活跃用户/新增/留存/付费)开发了一个web应用/APP
  • 基于游戏玩法开发数据平台 (参与率, 完成率, 吃鸡次数分布, BOSS击杀次数, 天梯段位分布, 通关玩家的平均战力)
  • 面向数据分析-主题导向 可视化 a.大小表示玩家交易出入之和, b.线表示玩家交易流入方向, c.线的粗细表示交易量大小

案例分析

5V5 PVP, 输出, 治疗, 坦克, 控制. 如何从100万场战斗找出划水玩家.

尽可能多的指标, 再利用聚类算法分成三类. 较低的认为是划水玩家

三 游戏数据挖掘做什么 大数据开发掌握的工具

需求目标

玩家数据+策划需求-->改善体验

流程

开始--需求确认--日志对接(游戏日志, 技能释放, 玩家某时间x,y,z位置释放a技能.例如1天10亿条)--a. 离线处理(隔天) b. 实时处理 c. ETL(extract提取字段 transform 转换表格 load到数据仓库)--数据仓库--分布式计算--结果展示(例如主题导向)

需求确认 需求转化 (职业平衡性调整 相同段位 战力接近玩家的1v1胜负数据)

游戏日志 行为数据(操作数据) 状态数据

可从行为数据计算的

A. 全服前3击杀X的玩家
B. ....

日志接入

游戏日志在游戏服务器, 数据传输到大数据的服务器
Kafka 分布式消息系统. 分布式, 支持分区partition(目的: 做副本用, 保证数据容错性 备份), 多副本replica, (一个生产者, 多个消费者, 离线数据打标签a, 实时数据相互独立). 基于zookeeper协调

日志存储

  1. HDFS 分布式存储master/slave架构
  2. HBase 基于HDFS的key-value数据库, 基于key快速查找
  3. Elasticsearch 基于lucene的实时搜索引擎 (根据玩家ID搜索记录, 分析行为, 分析是否作弊)

HDFS架构 master/slave架构 海量存储 2PB 50台机器.

master: namenode存储metadata, 存储路径. 三个备份, 存储block信息.

数据存储 datanode. 数据按块block存储 128MB.

lucene全文索引: 对全文内容进行分词, 建立倒排索引(通过词找文本 "坦克"在哪些出现 搜索引擎)

离线计算 MapReduce

全服击杀怪物前3名 (10亿行数据)

word count

Input

Dear Bear River Car Car River .......

Spliting

Dear Bear River

... ... ...

... ... ...

Mapping 每一行单独处理 list(K, V)

Dear 1

Bear 1

River 1

Shuffing !!!!

性能优化重点, 减少磁盘IO

Bear (1, 1)

Reduce

Bear 2

Car 3

... .

... .

Final Result

大数据仓库 HIVE

MapReduce 写起来麻烦

SQL (一段文本出现最多的词 SQL无法处理 需要分词)

引入Hive

迭代计算 Spark

适合需要不断迭代计算的场景 惰性计算. 转换为最后统一计算

spark 把中间结果存储在内存而不是磁盘, 优化计算.

交互式查询 Impala

对内存使用更激进. 分配256g内存. 适合验算和中小型(10亿级)数据快速查询

K-means算法应使用哪个工具?
Spark

实时计算

Spark 缩小时间窗口 (伪实时, 批处理伪装)

把批处理当成特殊的流处理

要实现 延迟不低于0.1s的实时计算

Spark不适合(适合秒级)

apache airflow 作业调度

数据展示 可视化

  1. 监控一批游戏新增玩家的留存状况? 色阶图
  2. 不同职业玩家强弱对比 战力 提琴图(95置信空间, 中位数, 四分位数, 密度)
  3. 游戏地图 死亡地点分布 热力图
  4. 词频分布表 词云图

用户研究团队合作 (玩家职业)

必备技能

游戏体验

专业技能

编程语言 SQL Python Java 频率降低, 能力要求提高
分布式计算
数据可视化 结果展示 (偏前端)

案例

数据存哪里 存什么数据 怎么计算 结果输出

实时: 历史账号存在哪里, 实时数据流 判断是否新增. 性能要求!

T+1 第二天 T+0 当天计算 时间不超过1分钟

猜你喜欢

转载自www.cnblogs.com/chiz/p/10877417.html
今日推荐