大数据之路-日志采集

数据采集作为大数据体系中的第一环节,对如何全面、高性能、规范完成海量数据的采集,并将其传输到大数据平台。

在这里插入图片描述

1.浏览器的页面日志采集

1.1 页面浏览日志采集流程

页面浏览日志是最基础的互联网日志,其中页面浏览量(PageView,PV)和访客数(Unique Visitors,UV)是一切互联网数据分析得以展开的基础和前提。
在这里插入图片描述
上图是一个典型的网页浏览过程,你认为从哪一个结点开始采集日志最为合适?
答案是④,首先,①-②步骤请求尚未抵达服务器,③只能认为服务器处理了请求,不能保证解析和渲染界面,也不能保证用户已经打开界面。
日志采集思路or原理:在HTML文档内的适当位置增加一个日志采集节点,当浏览器解析到这个节点时,将自动触发一个特定的HTTP请求到日志采集服务器。,当日志服务器接收到这个请求时,就确定浏览器已经成功地接收和打开了页面。
在这里插入图片描述
参照阿里巴巴采集过程(以PV日志为主),主要分为:采集 - 发送 - 收集 - 解析存档
1)客户端日志采集
主要采集当前页面参数、浏览行为的上下文信息(如读取用户访问当前页面时的上一步页面)以及一些运行环境信息
2)客户端日志发送
日志采集和日志发送一般存放在一个脚本中,通过HTTP协议与日志服务器通信,采集到的日志信息一般以URL参数形式放在HTTP日至请求的请求行内。
3)服务器端日志收集
日志服务器收到日志请求后,立刻向浏览器发送一个请求成功的响应,同时,会将日志请求内容写入到一个日志缓存区内
4)服务器端日志解析存档
进入缓存区后会按照约定的规则解析,转存入标准的日志文件中并注入实时消息通道供其他后端程序读取和进一步加工处理。

1.2页面交互日志采集

更多的是用户在访问某个界面是具体的互动行为特征,比如鼠标的移动变化、某些页面交互的反应。因为终端类型、页面内容、交互方式和用户实际行为是千变万化,无法规定统一的采集内容。阿里通过“黄金令箭”的采集方案,大致流程如下:
1)业务方在“黄金令箭”的元数据管理界面依次注册需要采集交互日志的业务、具体的业务场景以及场景下的具体交互采集点,在注册完成后,系统会生成与之对应的交互日志采集代码模板。
2)业务方将交互日志采集代码植入目标页面,并将采集代码与需要监测的交互行为做绑定
3)当用户在页面上产生指定行为时,采集代码和正常的业务互动相应代码一起被触发和执行
4)采集完成后通过HTTP协议发送到日志服务器,原则上不做解析处理,只做简单的转储

1.2页面日志的服务器端清洗和预处理

1)识别流量攻击、网络爬虫和流量作弊
对采集的日志进行合法性校验,依托算法识别非正常的流量并归纳出对应的过滤规则集加以滤除。
2)数据缺项补正
在大多数情况下,需要对日志中的一些公用且重要的数据项做取值归一、标准化处理或反向补正
3)无效数据剔除
有时因为业务变更或者配置不当,在采集到的数据中会有一些无意义,不仅会消耗存储空间和运算能力,还有可能干扰正常计算
4)日志隔离分发

1.2 无线客户端的日志采集

目的

  • 服务开发者,协助开发者分析各类设备问题
  • APP迭代优化,提升用户体验

1.2.1 页面事件

页面事件主要 记录
① 设备和用户的基本信息
② 被访问页面的信息
③ 访问基本路径,还原用户完整的访问行为(透传参数

请思考,进入页面时上报还是离开页面时上报呢?分析其中优点

在页面离开时上报比较好,首先可以获取到用户的页面停留时长

1.2.2控件点击及其他事件

记录了基本的设备信息、用户信息;控件所在的页面名称、控件名称、控件的业务参数

1.2.3特殊场景

为了平衡日志大小,减少流量消耗、采集服务器压力、网络传输压力,采集SDK提供了聚合功能。总体思路就是每个保管的元素一般都属于一个页面,利用页面的生命周期来实现适当的聚合及确定发送时机。

1.2.4 H5&Native日志统一

简单来说,APP分为两种:一种纯NativeAPP;一种既有Native又有H5页面嵌入的APP,即HybridAPP。要想实现Native和H5日志的统一处理,就需要对Hybrid日志有统一的方案。
阿里采用Native部署采集SDK的方式,有以下两点原因:

  • 采用采集SDK可以采集到更多的设备相关数据
  • 采集SDK处理日志,会先在本地缓存,而后借机上传,在网络不佳时延迟上报,保证数据不丢失

1.2.5 设备标识

主要用于分析访客数(Unique Visitors,UV)使用,当用户不登录访问时,会很难对未登录访问的日志进行有效分析。
PC端使用Cookie信息作为设备的唯一信息,对于APP来说,就需要获取到能够唯一标识设备的信息。历史上,MEI、IMSI、MAC都可以使用,不过随着系统升级和用户安全意识提高,很多基本的设备信息不能轻易获取到,阿里目前使用UTDID作为唯一标识。

1.2.6 日志传输

主要是介绍无线客户端日志的上传、压缩及传输的特殊性。
无线客户端的日志上传,不是生产一条上传一条,而是无线客户端产生日志后,先存储在客户端本地,然后再伺机(时间间隔、日志大小、上传网络耗时)上传。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/176922.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis6.0源码分析:跳表skiplist

文章目录 前言什么是跳表跳表(redis实现)的空间复杂度相关定义 跳表(redis实现)相关操作创建跳表插入节点查找节点删除节点 前言 太长不看版 跳跃表是有序集合zset的底层实现之一, 除此之外它在 Redis 中没有其他应用。…

深度学习入门(二)之神经网络

文章目录 从感知机到神经网络神经网络的例子复习感知机激活函数 激活函数sigmoid函数阶跃函数的实现阶跃函数的图形sigmoid函数的图形sigmoid函数与阶跃函数比较非线性函数ReLU函数 多维数组的运算多维数组矩阵乘法神经网络的内积 三层神经网络的实现符号确认各层间信号传递的实…

10kb的WordPress外链页面安全跳转插件

老白博客我参照csdn和腾讯云的外链跳转页面,写了一个WordPress外链安全跳转插件:给网站所有第三方链接添加nofollow标签和重定向功能,提高网站安全性。插件包括两个样式,由于涉及到的css不太一样,所以分别写了两个版本…

高效处理异常值的算法:One-class SVM模型的自动化方案

一、引言 数据清洗和异常值处理在数据分析和机器学习任务中扮演着关键的角色。清洗数据可以提高数据质量,消除噪声和错误,从而确保后续分析和建模的准确性和可靠性。而异常值则可能对数据分析结果产生严重影响,导致误导性的结论和决策。因此&…

纪念基于JavaScript 实现的后台桌面 UI 设计

目录 前言 C/S 到 B/S ASP Builder 的诞生 关于 Craneoffice.net 开发环境配置 后台界面的 UI 区域要素 桌面系统的想法和设计 搜索引擎 导航面板 快捷访问 二级导航 小组件及其它 设置桌面壁纸 小时钟 附件小程序 计算器界面设计 日历与任务 系统设置 天气小…

【HeidiSql_01】python在heidisql当中创建新表的注意事项

python在heidisql当中创建新表的注意事项 假设你已经在python当中弄好了所有的结果,并且保存在df_all这个dataframe当中,然后要将其导入数据库当中并创建一张新的表进行保存。 # 构建数据库连接,将merged_df写回数据库 from sqlalchemy import create_e…

进口跨境商城源码:高效、安全、可扩展的电商平台解决方案

电子商务的兴起为跨境贸易提供了前所未有的机会和挑战。在这个全球化的时代,跨境电商平台成为许多企业进军国际市场的首选。然而,搭建一个高效、安全、可扩展的进口跨境商城并非易事。 1. 解决方案概述 我们推出的 "进口跨境商城源码" 提供了一…

小程序商城免费搭建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景+b2b2c

1. 涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

uniapp @click点击事件在新版chrome浏览器点击没反应

问题描述 做项目时,有一个弹出选择的组件,怎么点都不出来,最开始还以为是业务逻辑限制了不能点击。后来才发现别人的电脑可以点出来,老版本的浏览器也可以点出来,最后定位到是新版的chrome就不行了 这是我的浏览器版本…

【C++的OpenCV】第十四课-OpenCV基础强化(三):单通道Mat元素的访问之data和step属性

🎉🎉🎉 欢迎来到小白 p i a o 的学习空间! \color{red}{欢迎来到小白piao的学习空间!} 欢迎来到小白piao的学习空间!🎉🎉🎉 💖 C\Python所有的入门技术皆在 我…

STM32F407的系统定时器

文章目录 系统定时器SysTick滴答定时器寄存器STK_CTRL 控制寄存器STK_LOAD 重载寄存器STK_VAL 当前值寄存器STK_CALRB 校准值寄存器 初始化 Systick 定时器SysTick_InitSysTick_CLKSourceConfig delay_us寄存器delay_us库函数delay_xms短时delay_ms长时SysTick_Config 系统定时…

HTML和CSS的基础-前端扫盲

想要写出一个网页,就需要学习前端开发(写网页代码)和后端开发(服务器代码)。 对于前端的要求,我们不需要了解很深,仅仅需要做到扫盲的程度就可以了。 写前端,主要用到的有&#xf…

〔001〕虚幻 UE5 发送 get、post 请求、读取 json 文件

✨ 目录 🎈 安装 varest 扩展🎈 开启 varest 扩展🎈 发送 get 请求🎈 发送 post 请求🎈 读取 json 文件🎈 安装 varest 扩展 打开 虚幻商城,搜索 varest 关键字进行检索, varest 是一个 api 调用插件,支持 http/https 请求,也支持 json 文件的读取,最关键是该…

JavaScript

一. JavaScript概述 1. ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-26…

水库大坝可视化智能远程监管方案,助力安全监测智能巡检

一、背景需求 水库大坝作为防洪度汛的重要设施,其安全问题直接关系到人民群众的生命财产安全。因此,必须加强对大坝水库的安全管理,对水库除险加固和运行管护要消除存量隐患,实现常态化管理,同时要配套完善重点小型水…

在Linux上编译gdal3.1.2指南

作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 以Ubuntu 18编译gdal3.1.2为例,编译gdal3.1.2需要先编译proj库和geos库(可选)。我选择的proj库版本为proj-7.1.0,编译proj-7.1.0需要先编译tiff库和sqlite3。我选择的sqlite3的版本为…

高性能消息中间件 - Kafka3.x(三)

文章目录 高性能消息中间件 - Kafka3.x(三)Kafka Broker ⭐Kafka Broker概念Zookeeper(新版本可以不使用zk了)⭐Zookeeper的作用 Kafka的选举1:Broker选举Leader⭐Broker核心参数⭐案例:服役新节点和退役旧…

SaaS可配置性设计要点

1 引言 考虑到系统SaaS需求,就成熟的SaaS应用而言,元数据服务是为用户提供定制和配置应用、满足其特定需求的主要手段。 可配置能力主要反映在这4个方面:1 程序外观;2 工作流程与业务规则;3 数据模型&#xff1b…

微信便利签怎么弄?微信中有便捷操作的便签小程序吗

微信在日常办公及生活中比较重要的作用就是:聊天、视频会议、语音会议等,这是大家认知中的微信。除了这些功能以外,微信中还有很多小程序,小程序也能够辅助大家日常的办公。 比如,工作中我们需要制定工作计划&#xf…

vscode开启emmet语法

需要在setting.json中添加配置 首先进入设置,然后点击右上角 Vue项目添加如下配置 "emmet.syntaxProfiles": { "vue-html": "html", "vue": "html" },React项目添加如下配置 "emmet.includeLanguages&quo…