专栏原创出处: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 {
    // ... 更多方法参考源码
  }

}
最后修改时间: 2/17/2020, 4:43:04 AM