uv

实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示

独自空忆成欢 提交于 2019-11-29 12:33:21
最近有个需求,实时统计pv,uv,结果按照date,hour,pv,uv来展示,按天统计,第二天重新统计,当然了实际还需要按照类型字段分类统计pv,uv,比如按照date,hour,pv,uv,type来展示。这里介绍最基本的pv,uv的展示。 id uv pv date hour 1 155599 306053 2018-07-27 18 关于什么是pv,uv,可以参见这篇博客: https://blog.csdn.net/petermsh/article/details/78652246 1、项目流程 日志数据从flume采集过来,落到hdfs供其它离线业务使用,也会sink到kafka,sparkStreaming从kafka拉数据过来,计算pv,uv,uv是用的redis的set集合去重,最后把结果写入mysql数据库,供前端展示使用。 2、具体过程 1)pv的计算 拉取数据有两种方式,基于received和direct方式,这里用direct直拉的方式,用的mapWithState算子保存状态,这个算子与updateStateByKey一样,并且性能更好。当然了实际中数据过来需要经过清洗,过滤,才能使用。 定义一个状态函数 // 实时流量状态更新函数 val mapFunction = (datehour:String, pv:Option[Long], state

Godot Shader文档翻译:2D着色器

痴心易碎 提交于 2019-11-29 03:17:18
译者注:直译为***画布元素着色器***下文中将意译成2D着色器 2D着色器(CanvasItem shaders) 2D着色器用于绘制Godot中的所有的2D元素,包括所有继承于CanvasItem的节点以及所有的GUI元素。 相对于3D着色器,2D着色器要简单一些,内置函数也比较少,但是2D和3D着色器的基础结构是相同的,都包顶点函数( vertex ),片元函数( fragment )及光( light )函数 渲染模式画布元素 渲染模式 描述 blend_mix Mix blend mode (alpha is transparency), default. blend_add Additive blend mode. blend_sub Subtractive blend mode. blend_mul Multiplicative blend mode. blend_premul_alpha Pre-multiplied alpha blend mode. blend_disabled Disable blending, values (including alpha) are written as-is. unshaded Result is just albedo. No lighting/shading happens in material. light

DMP项目

*爱你&永不变心* 提交于 2019-11-28 08:12:13
DMP说明: DMP(Data Management Platform)数据管理平台,是把分散的多方数据进行整合纳入统一的技术平台,并对这些数据进行标准化和细分,让用户可以把这些细分结果推向现有的互动营销环境里的平台。 1.项目背景 互联网广告(本项目针对手机,OTT,PC)的崛起得益于信息技术的发展和普及,智能的终端设备迅猛的发展。 互联网广告的优势: 1)受众多 10亿+网民 2)可以跟踪用户的行为,进而可以做精准营销 2.dsp流程 如果用户是第一次进来,在DMP中没有信息,有默认的广告投放公司,比如可口可乐会去投(追求曝光率) DSP主要是有两个属性,1就是广告,2就是DMP系统,里面有我们用户的信息(比如关注的物品的权重) 3.项目开发部分 项目开展之前进行一下操作,成为项目准备阶段 1)需求分析 这里简单的说几句,因为涉及到公司机密和技术要点,不便于详细说明,望理解。 dmp项目就是用来支撑精准广告投放的,主要是用用户画像,根据埋点采集的数据,进行ETL处理,然后进行数据分析,抽象出来一些标签,再根据用户行为数据,从不同维度数据的权重,给用户打上标签,实现广告精准投放。 2)技术架构 详细的请看下图: 3)技术选型 CDH5.16.1(hadoop2.6.x,hbase等) Spark2.3(sparksql,sparkstreaming) Java1.8 Scala2

使用MTA HTML5统计API来分析数据

痞子三分冷 提交于 2019-11-28 07:24:20
在开发个人博客的时候,用到了腾讯移动分析(MTA),相比其他数据统计平台来说我喜欢她的简洁高效,易上手,同时文档也比较全面,提供了数据接口供用户调用。 在看了MTA演示 Demo 和 官方文档 后,我就决定使用 .NET Core将其HTML5统计API进行封装,以供博客直接调用,省去各种鉴权生成sign的操作。 首先需要在 MTA 官网进行HTML5应用创建,当然她还支持小程序和移动App。 然后就可以看到如上图的应用管理界面,如果你不打算使用其API接口,直接拿到统计代码嵌入在自己网站中即可,不出意外10分钟左右即可查看网站部分指标的实时数据,次日可以查看昨日的全部数据。 接下来继续,在调用MTA接口之前需要先生成sign, 双方维护同一份私钥,在发起请求的时候,发起方(合作方)将当前的请求参数数组,按照key值进行排序,然后'key=value'拼接到加密串后,进行md5的编码。接收方以同样的处理方式,对ts小于或等于30分钟的请求进行处理,sign一致则合法,否则失败。 有了这段算法描述,利用C#代码实现如下: /// <summary> /// 生成sign /// </summary> /// <param name="keyValues"></param> /// <returns></returns> public static string

QPS、TPS、PV、UV、GMV、IP、RPS?

做~自己de王妃 提交于 2019-11-28 00:30:53
QPS、TPS、PV、UV、GMV、IP、RPS QPS Queries Per Second,每秒查询数。 每秒能够响应的查询次数 。 QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。每秒的响应请求数,也即是最大吞吐能力。 TPS Transactions Per Second 的缩写, 每秒处理的事务数目 。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。 客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。 TPS 的过程包括:客户端请求服务端、服务端内部处理、服务端返回客户端。例如,访问一个 Index 页面会请求服务器 3 次,包括一次 html,一次 css,一次 js,那么访问这一个页面就会产生一个“T”,产生三个“Q”。 PV (page view)即 页面浏览量 ,通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。户每一次对网站中的每个页面访问均被记录 1 次。用户对同一页面的多次刷新,访问量累计。根据这个特性,刷网站的 PV 就很好刷了。 与 PV 相关的还有 RV ,即 重复访问者数量 (repeat visitors)。 UV 访问数(Unique Visitor)指

PlayCanvas PBR材质shader代码分析(vertex shader)

白昼怎懂夜的黑 提交于 2019-11-26 22:59:21
顶点shader主要对顶点坐标变换,将顶点坐标从local->world->view->clip 空间变换 local空间:模型物体坐标系 world空间:世界空间坐标系 view空间: 相机空间 clip空间: 裁剪空间 local->world空间简化后其实就是这么一行代码: vec4 posW = dModelMatrix * vec4(localPos, 1.0); 此图由 https://tinygltf.xyz/drawgeometry/ 网站脚本编写后截图输出 dModelMatrix就是将顶点local坐标系转换到了世界坐标系下。 dModelMatrix是通过getModelMatrix()方法获取 mat4 getModelMatrix() { #ifdef DYNAMICBATCH return getBoneMatrix(vertex_boneIndices); #elif defined(SKIN) return matrix_model * (getBoneMatrix(vertex_boneIndices.x) * vertex_boneWeights.x + getBoneMatrix(vertex_boneIndices.y) * vertex_boneWeights.y+ getBoneMatrix(vertex_boneIndices.z) *

UVA - 1599 Ideal Path (BFS)

喜你入骨 提交于 2019-11-26 01:43:29
传送门 题意 求带边权无向图从起点到终点的边权字典序最小的最短路路径 解法 两遍 BFS 第一遍逆向,给图分层 第二遍求路径,每层的点都只能沿最小的边权走向下一层的点。 代码 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <queue> using namespace std; typedef long long LL; const int inf=0x3f3f3f3f; const LL INF=0x3f3f3f3f3f3f3f3f; const int MAXN=1e5+10; int n,m; int head[MAXN],nxt[MAXN*4],to[MAXN*4],c[MAXN*4],tot=1; int dis[MAXN],from[MAXN],path[MAXN]; bool vis[MAXN]; queue<int> que; queue<vector<int> > q2; void add(int u,int v,int w){ to[++tot]=v;c[tot]=w;nxt[tot]=head[u];head[u]=tot; to[++tot]=u;c[tot]=w;nxt[tot]=head[v];head[v]=tot; }

大数据采集、清洗、处理:使用MapReduce进行离线数据分析完整案例

落花浮王杯 提交于 2019-11-25 20:10:49
[TOC] 1 大数据处理的常用方法 大数据处理目前比较流行的是两种方法,一种是离线处理,一种是在线处理,基本处理架构如下: 在互联网应用中,不管是哪一种处理方式,其基本的数据来源都是日志数据,例如对于web应用来说,则可能是用户的访问日志、用户的点击日志等。 如果对于数据的分析结果在时间上有比较严格的要求,则可以采用在线处理的方式来对数据进行分析,如使用Spark、Storm等进行处理。比较贴切的一个例子是天猫双十一的成交额,在其展板上,我们看到交易额是实时动态进行更新的,对于这种情况,则需要采用在线处理。 当然,如果只是希望得到数据的分析结果,对处理的时间要求不严格,就可以采用离线处理的方式,比如我们可以先将日志数据采集到HDFS中,之后再进一步使用MapReduce、Hive等来对数据进行分析,这也是可行的。 本文主要分享对某个电商网站产生的用户访问日志(access.log)进行离线处理与分析的过程,基于MapReduce的处理方式,最后会统计出某一天不同省份访问该网站的uv与pv。 2 生产场景与需求 在我们的场景中,Web应用的部署是如下的架构: 即比较典型的 Nginx负载均衡+KeepAlive高可用集群架构 ,在每台Web服务器上,都会产生用户的访问日志,业务需求方给出的日志格式如下: 1001 211.167.248.22 eecf0780-2578-4d77