HBase数据模型深入剖析-OLAP商业环境实战
本套系列博客从真实商业环境抽取案例进行总结和分享,并给出Spark源码解读及商业实战指导,请持续关注本套博客。版权声明:本套Spark源码解读及商业实战归作者(秦凯新)所有,禁止转载,欢迎学习。
1:用户使用过哪些APP和使用时长(以用户id, 天为单位)
周期内时长统计
table-->behavior_user_app_201809
rowKey-->userid:20180904
columnfamily-->timeLen
column --> appName (包名为多个)
value --> long值 String tableName = "behavior_user_app_" + DateUtils.getMonthByHour(model.getHour());
Table table = HBaseClient.getInstance(this.props).getTable(tableName);
String rowKey = model.getUserId()+":"+DateUtils.getDayByHour(model.getHour());
table.incrementColumnValue(Bytes.toBytes(rowKey), Bytes.toBytes("timeLen"), Bytes.toBytes(model.getPackageName()), model.getTimeLen());
复制代码
2:用户每小时的使用应用的时长(以用户id,天为单位)
一天中不同时段的玩机趋势
table-->behavior_user_hour_time_201809
rowKey-->userid:20180904
columnfamily-->timeLen
column --> 12 13 14 ... ...(小时24个)
value --> long值 String tableName = "behavior_user_hour_time_" + DateUtils.getMonthByHour(model.getHour());
Table table = HBaseClient.getInstance(this.props).getTable(tableName);
String rowKey = model.getUserId()+":"+DateUtils.getDayByHour(model.getHour());
table.incrementColumnValue(Bytes.toBytes(rowKey), Bytes.toBytes("timeLen"), Bytes.toBytes(DateUtils.getOnlyHourByHour(model.getHour())), model.getTimeLen());
复制代码
3:用户每天的玩机时长(以用户id为单位)
一个月中不同天数的玩机趋势
table-->behavior_user_day_time_201809
rowKey-->userid
columnfamily-->timeLen
column --> 1 2 3 ... ...(天数:31)
value --> long值 String tableName = "behavior_user_day_time_" + DateUtils.getMonthByHour(model.getHour());
Table table = HBaseClient.getInstance(this.props).getTable(tableName);
String rowKey = String.valueOf(model.getUserId());
table.incrementColumnValue(Bytes.toBytes(rowKey), Bytes.toBytes("timeLen"), Bytes.toBytes(DateUtils.getOnlyDayByHour(model.getHour())), model.getTimeLen());
复制代码
4:用户每个应用每小时的玩机时长(以用户id,天,应用为单位)
table-->behavior_user_day_app_time_201809
rowKey-->userid:day:packageName
columnfamily-->timeLen
column --> 12 13 14 ... ...(小时24个)
value --> long值 String tableName = "behavior_user_day_app_time_" + DateUtils.getMonthByHour(model.getHour());
Table table = HBaseClient.getInstance(this.props).getTable(tableName);
String rowKey = model.getUserId()+":"+DateUtils.getDayByHour(model.getHour())+":"+model.getPackageName();table.incrementColumnValue(Bytes.toBytes(rowKey), Bytes.toBytes("timeLen"), Bytes.toBytes(DateUtils.getOnlyHourByHour(model.getHour())), model.getTimeLen());
复制代码
5:用户每个应用每天的玩机时长(以用户id,应用为单位)
table-->behavior_user_day_time_201809
rowKey-->userid:packageName
columnfamily-->timeLen
column --> 1 2 3 ... ...(天数:31)
value --> long值 String tableName = "behavior_user_day_app_time_" + DateUtils.getMonthByHour(model.getHour());
Table table = HBaseClient.getInstance(this.props).getTable(tableName);
String rowKey = model.getUserId()+":"+model.getPackageName();table.incrementColumnValue(Bytes.toBytes(rowKey), Bytes.toBytes("timeLen"), Bytes.toBytes(DateUtils.getOnlyDayByHour(model.getHour())), model.getTimeLen());
复制代码
6:总结
秦凯新 于深圳
HBase数据模型深入剖析-OLAP商业环境实战相关推荐
- HBase的Compact参数设置及数据读写流程剖析-OLAP商业环境实战
本套系列博客从真实商业环境抽取案例进行总结和分享,并给出Spark商业应用实战指导,请持续关注本套博客.版权声明:本套Spark商业应用实战归作者(秦凯新)所有,禁止转载,欢迎学习. 秦凯新的技术社区 ...
- Spark ShuffleManager内存缓冲器SortShuffleWriter设计思路剖析-Spark商业环境实战
本套系列博客从真实商业环境抽取案例进行总结和分享,并给出Spark源码解读及商业实战指导,请持续关注本套博客.版权声明:本套Spark源码解读及商业实战归作者(秦凯新)所有,禁止转载,欢迎学习. Sp ...
- Spark PersistenceEngine持久化引擎与领导选举代理机制内核原理深入剖析-Spark商业环境实战...
本套系列博客从真实商业环境抽取案例进行总结和分享,并给出Spark源码解读及商业实战指导,请持续关注本套博客.版权声明:本套Spark源码解读及商业实战归作者(秦凯新)所有,禁止转载,欢迎学习. Sp ...
- Kubernetes CRD开发模式及源码实现深入剖析-Kubernetes商业环境实战
专注于大数据及容器云核心技术解密,可提供全栈的大数据+云原生平台咨询方案,请持续关注本套博客.如有任何学术交流,可随时联系.留言请关注<数据云技术社区>公众号. 1 CRD资源扩展 CRD ...
- 工业级大数据接入MQ消息发送异常性及最终一致性解决方案-DW商业环境实战
版权声明:本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客.QQ邮箱地址:1120746 ...
- 分布式协调组件ZooKeeper的技术理论剖析-综合组件环境实战
本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客.QQ邮箱地址:1120746959@q ...
- SparkSQL 之 Shuffle Join 内核原理及应用深度剖析-Spark商业源码实战
本套技术专栏是作者(秦凯新)平时工作的总结和升华,通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客.版权声明:禁止转载,欢迎学习.QQ邮箱 ...
- Redis内核原理及读写一致企业级架构深入剖析1-综合组件环境实战
本套技术专栏是作者(秦凯新)平时工作的总结和升华,并深度整理大量网上资源和专业书籍.通过从真实商业环境抽取案例进行总结和分享,并给出商业应用的调优建议和集群环境容量规划等内容,请持续关注本套博客.QQ ...
- 带你了解 HBase 数据模型和 HBase 架构
摘要:HBase 是一个面向列的 NoSQL 数据库. 本文分享自华为云社区<HBase 架构:HBase 数据模型 & HBase 读/写机制>,作者: Donglian Lin ...
最新文章
- PyCharm vs VSCode,是时候改变你的 IDE 了!
- Leetcode 79. 单词搜索 (每日一题 20210720 同类型题)
- oracle性能问题排查,性能测试Oracle消耗排查记录
- TCP/UDP的小事情
- pythonos基础_python基础之模块之os模块
- POJ 1753 Flip Game DFS枚举
- Angular里使用createEmbeddedView的单步调试
- SAP低代码开发(Low Code Development)解决方案的一些使用截图
- 前端学习(2961):前一天回顾
- Linux日常运维管理技巧(一)监控系统状态、监控网卡流量、监控IO性能、查看系统进程、查看网络状态、Linux下抓包tcpdump、Linux网络相关、DNS配置
- v-show在elementui中表格组件失效问题
- Linux 下 4 种实时监控日志文件的方法,你都会用吗?
- DirectX SDK 安装时出现错误 [Error Code:S1023] 的解决方案
- SpringBoot - Spring 家族的技术体系
- 威廉玛丽学院计算机专业好吗,威廉玛丽学院计算机专业怎么样?
- 用git clone命令从gitlab上拉取公司项目操作步骤
- 第八次前端培训(JavaScript)
- 【台达 PLC - 0】 - 电气基础
- php sec-websocket-accept,javascript – Websocket握手Sec-WebSocket-Accept标...
- 广州市番禺区2021-2022学年九年级第一学期期末考试英语试题
热门文章
- [Vue.js]实战 -- 电商项目(二)
- CSS3 移动端开发技巧
- react笔记-设计复合式控件(三)
- CSS3新增-属性(长度颜色背景)选择器-盒子模型
- 7-59 翻转单词顺序 (20 分)
- 力扣20-有效的括号(C++,附思路)
- 二叉树先序、中序和后序遍历
- mysql table as_Mysql中create table as与like命令的区别
- html语言怎样设置密码类型,html – 在使用contenteditable div时模仿密码类型输入
- (一)flask-sqlalchemy的安装和配置