专栏原创出处:github-源笔记文件 (opens new window) ,github-源码 (opens new window),欢迎 Star,转载请附上原文出处链接和本声明。
# 开发前准备工作
参考 flink-advanced (opens new window) 项目 README.MD 文件说明
# 数据集说明
# words 数据集说明
模拟一篇文章为.txt 文件,对其中单词进行一些频次分析
参考
io.gourd.flink.scala.data.Words
# 模拟游戏统计业务数据集说明(重要)
模拟游戏业务数据
参考 games/data/pojo (opens new window) 定义 POJO 内容 参考 resources/data/game/*.csv (opens new window) 文件定义演示数据内容 提供模拟数据集模型定义及数据载入工具方法 以角色扮演游戏举例,用户登录账户后,可以选择不同的角色进行游戏,一个用户拥有多个角色 UserXXX 表示用户事件,RoleXXX 表示角色事件。
# POJO 定义声明
# 用户登录-UserLogin
package io.gourd.flink.scala.games.data.pojo
/** 用户登录
*
* @param platform 所在平台 id(e.g. H5/IOS/ADR/IOS_YY)
* @param server 所在游戏服 id
* @param uid 用户唯一 id
* @param dataUnix 事件时间/s 时间戳
* @param status 登录动作(LOGIN/LOGOUT)
* @author Li.Wei by 2019/11/6
*/
case class UserLogin(platform: String, server: String,
uid: String,
dataUnix: Int,
status: String) extends GameModel {
override def getDataUnix: Int = dataUnix
}
# 角色登录-RoleLogin
package io.gourd.flink.scala.games.data.pojo
/** 角色登录
*
* @param platform 所在平台 id(e.g. H5/IOS/ADR/IOS_YY)
* @param server 所在游戏服 id
* @param uid 用户唯一 id
* @param rid 角色唯一 id
* @param dataUnix 事件时间/s 时间戳
* @param status 登录动作(LOGIN/LOGOUT)
* @author Li.Wei by 2019/11/6
*/
case class RoleLogin(platform: String, server: String,
uid: String,
rid: String,
dataUnix: Int,
status: String) extends GameModel {
override def getDataUnix: Int = dataUnix
}
# 角色充值-RolePay
package io.gourd.flink.scala.games.data.pojo
/** 角色充值
*
* @param platform 所在平台 id(e.g. H5/IOS/ADR/IOS_YY)
* @param server 所在游戏服 id
* @param uid 用户唯一 id
* @param rid 角色唯一 id
* @param dataUnix 事件时间/s 时间戳
* @param payWay 支付方式
* @param orderId 订单 id
* @param money 金额
* @author Li.Wei by 2019/11/6
*/
case class RolePay(platform: String, server: String,
uid: String,
rid: String,
dataUnix: Int,
payWay: String, orderId: String, money: Double) extends GameModel {
override def getDataUnix: Int = dataUnix
}
# 角色商城消费-RoleShop
package io.gourd.flink.scala.games.data.pojo
/** 角色商城消费
*
* @param platform 所在平台 id(e.g. H5/IOS/ADR/IOS_YY)
* @param server 所在游戏服 id
* @param uid 用户唯一 id
* @param rid 角色唯一 id
* @param dataUnix 事件时间/s 时间戳
* @param itemId 商品 id
* @param num 数量
* @param totalMoney 总金额
* @author Li.Wei by 2019/11/6
*/
case class RoleShop(platform: String, server: String,
uid: String,
rid: String,
dataUnix: Int,
itemId: String, num: Long, totalMoney: Double) extends GameModel {
override def getDataUnix: Int = dataUnix
}
# 快速创建数据集工具类
GameData.scala (opens new window) 提供了快速创建上述 POJO 对于数据集方法,减少开发过程重复代码
object GameData {
// load DataSet
object DataSet {
}
// Register DataSet
object RegisterDataSet {
// ... 更多方法参考源码
}
// load DataStream
object DataStream {
// ... 更多方法参考源码
}
// Register DataStream
object RegisterDataStream {
// ... 更多方法参考源码
}
object Table {
// ... 更多方法参考源码
}
}