当前位置: 首页 > news >正文

美食网站的建设目的外贸网站wordpress

美食网站的建设目的,外贸网站wordpress,网站空间租用价格,长春自助建站模板一、背景 前面系列文章介绍了用户画像的概念、用户画像的标签加工、用户画像的应用。本篇文章主要介绍一些画像的技术细节,让大家更加详细的了解画像数据存储和处理的逻辑 举个现实中的例子: 例子1:因为疫情原因,上线一个平台(…

一、背景

前面系列文章介绍了用户画像的概念、用户画像的标签加工、用户画像的应用。本篇文章主要介绍一些画像的技术细节,让大家更加详细的了解画像数据存储和处理的逻辑

举个现实中的例子:

例子1:因为疫情原因,上线一个平台(和疫情相关),然后用户关注了疫情这个平台,有一个标签来标识用户是否关注疫情,但是随着政策放开,这个标签显然对公司来说是没有用随着疫情放开之后,而且还浪费存储成本,需要单独弄一个字段来进行标识

例子2:一个账号在购物或者看视频的时候会登录很多个设备,比如说 电商平台网页版、手机版(安卓、ios)或者pad 版本等等,但是可能随着用户换设备(换手机、电脑或者pad),之前的设备信息再进行存储也没有意义,毕竟那个手机或者电脑可能已经不在使用了,至少不挂在这个账号体系下了

通过上面上个例子,能看到有这样一些标签,随着时间的推移,对业务没有价值浪费存储空间,甚至因为没有过期造成误解

二、解决思路

那有没有这样一个方案呢?对这样的标签进行过期处理呢?

比如说:认为某个账号下一个设备半年不更新或者某个标签半年不更新就对这个标签进行删除呢?

 上述流程图介绍了标签的写入流程以及标签过期的处理流程。

标签过期:需要读取所有的画像数据,对每个标签进行判断,如果当前时间—标签的更新时间>标签的TTL时间,需要对该标签进行删除。

即:整个流程支持数据库列级别的TTL,要求能获取到标签更新的时间,也就是列的更新时间

三、具体实现

目前整体采用Hbase +Mysql来实现,Hbase支持更新列的时候设置更新时间,同时支持获取列的读取到列的更新时间,通过Mysql配置标签的TTL信息即可完成整体流程

hbase写入时设置列的时间
@Testpublic void insert() throws IOException {Calendar calendar = Calendar.getInstance();calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH) - 1, 0, 0, 0);long preZero = calendar.getTime().getTime();System.out.println(preZero);Connection connection = createConnection();Table table = connection.getTable(TableName.valueOf("tmp_test_info"));ArrayList<Put> puts = new ArrayList<>();Put put4 = new Put("0005".getBytes());put4.addColumn("f1".getBytes(), "name".getBytes(), preZero, Bytes.toBytes("小杰"));put4.addColumn("f1".getBytes(), "age".getBytes(), Bytes.toBytes(24));//不设置则用当前时间puts.add(put4);table.put(puts);table.close();connection.close();}
@Test
public void scan() throws IOException {Map<String, Long> cellTTL = new HashMap<>();cellTTL.put("name", 1L);//单位天cellTTL.put("age", 2L);//单位天List<Delete> deleteList = new ArrayList<>();long currentTime = System.currentTimeMillis();Table table = createConnection().getTable(TableName.valueOf("tmp_test_info"));Scan scan = new Scan();scan.withStartRow("0001".getBytes());scan.withStopRow("0008".getBytes());ResultScanner scanner = table.getScanner(scan);for (Result result : scanner) {List<Cell> cells = result.listCells();for (Cell cell : cells) {String rk = Bytes.toString(CellUtil.cloneRow(cell));String family = Bytes.toString(CellUtil.cloneFamily(cell));String column = Bytes.toString(CellUtil.cloneQualifier(cell));long timestamp = cell.getTimestamp();if (column.equals("name")) {String value = Bytes.toString(CellUtil.cloneValue(cell));System.out.println(rk + ":" + family + ":" + column + ":" + value + ":" + timestamp);} else {int value = Bytes.toInt(CellUtil.cloneValue(cell));System.out.println(rk + ":" + family + ":" + column + ":" + value + ":" + timestamp);}if (cellTTL.containsKey(column)) {if (currentTime - timestamp > cellTTL.get(column)*24*60*60*1000) {//判断列标签是否过期Delete delete = new Delete(Bytes.toBytes(rk));delete.addColumn(Bytes.toBytes(family), Bytes.toBytes(column));deleteList.add(delete);}}}}if (!deleteList.isEmpty() && deleteList.size() > 0) {table.delete(deleteList);}table.close();
}

上面给出了一个简单版本的过期策略处理代码

http://www.yayakq.cn/news/422530/

相关文章:

  • 二级域名备案流程来宾网站优化
  • 青岛大学网站建设给你一个网站如何做推广
  • 为什么网站数量减少wordpress英文版如何变成中文版
  • 客户端网站建设文档我想在百度上做广告怎么做
  • 怎么做网站教程简单百度网盘app下载安装官方免费下载
  • 建设网站需要的安全设备建设企业网站制作公司
  • 手机网站如何站点管理wordpress文章图片全屏浏览
  • 大图网 网站两学一做网站按钮图片
  • 用手机怎么做网站佛山建网站公司
  • 行业门户网站源码邵阳建设网站公司
  • 网站建设与管理案例教程第三版答案百度网站建设的意义
  • 免费网站空间可访问云南中建西部建设有限公司网站
  • 南宁建站公司有哪些中国光伏企业排行榜
  • 肇庆网站搜索排名二次开发怎么弄
  • 北京高端网站建设服务莱芜最新
  • 阜新网站建设做返利网站怎麼
  • asp 网站信箱模板五彩科技网站建设
  • 济南模板建站软件万江网站制作
  • 上海浦东建筑建设网站污水处理工程企业为什么要分析环境
  • 成都网站建设的费用网站做适配手机要多久
  • 建一个团购网站最新软件推广
  • 西安网站建设公司哪家好凡客诚品售后服务有哪些
  • 订餐网站开发深圳市建设管理中心
  • asp.net 手机网站开发wordpress 多模板
  • 巴中城乡和住房建设厅网站什么叫 营销型网站
  • 太原网站建设解决方案石家庄医疗网站建设
  • 学做卤味视频网站wordpress即时
  • 菏泽市城乡建设局网站哪个网站有免费
  • 用深度liunx做网站济南网站建设推荐企优互联不错
  • 网站推荐男生正能量快速域名网站备案