数据预处理-数据解析-需求与思路|学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习数据预处理-数据解析-需求与思路

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第三阶段数据预处理-数据解析-需求与思路】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/671/detail/11660


数据预处理-数据解析-需求与思路


内容介绍:

一、数据解析的需求

二、解析规则与思路


一、数据解析的需求

已经打完了单程还是往返的标签同时也看到了效果。接下来看下面的宏观流程,接下来要实现的目标叫做数据解析。

image.png

数据解析分为两种情况:查询类的数据解析,预定类的数据解析。在数据当中,企业的业务场景当中,数据会分为两种业务场景,一个是查询类的,一个是预定类的。

那么要做的第一件事情就是查询类的数据解析。

查询类的数据解析到底要做什么事?

解析查询类的数据的目标是来实现解析出数据当中出现的出发地、目的地、起飞时间,以及其他的信息,也就说最主要的目的就是为了解析这些数据,把它们解析出来。

这部分稍微有些复杂,因为采集的数据当中是没有出发地、目的地、起飞时间的,或者说有但是不能够通过原始数据一步解析出来。

需求:

截止到目前为止,已经对每一条数据进行了分类,计算出了它的标签,这些标签里面包括国内查询、国际查询、国内预定、国际预定,还有单程跟往返,这些已经计算好了,在解析数据里面我们会用到它们。

每一个不同的分类,也就是说国内查询、国际查询、国内预定和国际预定。

这是四种情况,那么不同的分类,它的请求参数的格式是不一样的。也就说解析这四种情况的出发地和目的地,它的解析参数是不一样的。那么同样,四种不听的业务场景解析数据的参数也是不一样的。

那么这些参数放在哪儿?

它们放在数据库中,四种情况分别有一个解析规则来一一去对应。

参数的配置放到了外部项目当中。

image.png

看上图所示页面,数据管理里有一个数据处理的页面,上面有国际国内查询,国际和国内的预定。

然后在这里面要解析出发地和目的地。

以南方航空为例,现在默认是广州到成都。8月15出发,9月15返回,这两个是日期。

image.png

日期选好以后来监控一下它的参数,点击查询,看下图,在网络流量当中,查询 Query,然后看到里面的参数有一个 depcity, 一个 arrcity 还有一个 flightdate 。

image.png

depcity 的就是出发地,arrcity 就是目的地,flightDate 是起飞日期,这就是要监控的数据,这些数据都在参数里面也就是 Body 里面。请求头里面是没有这些数据的。

要把它解析出来就要知道数据的 body 信息。那么数据的 body 有哪些?要去哪里又该怎么去解析?

image.png

看上图页面,业务场景分为查询类和预定类。而查询又分为国内查询和国际查询。预定又分为国内预定和国际预定。

image.png

目的是为了解析说出发地、目的地、起飞时间。也就是图中显示的 depCity、arrCity、flightDate,但是不能直接解析出来。

因为国内查询用的是 depCity、arrCity、flightDate 来标记出发地,目的地和起飞时间。

image.png

但是在国际查询,出发地是 dep ,目的地是 arr。起飞时间是 date  ,这和国内查询完全不一样。同样国内和国际预定里面的出发地,目的地和起飞时间也是完全不一样的,也就是数据采集完之后可以拿到数据当中的 body 信息。但是拿到信息以后该怎么解析?

所以这个界面存在的意义就是明确的告诉我们,如果数据是国内查询的业务场景,那么针对每一条数据它会把你的飞行类型和操作类型打出来了。就是上面的四种情况,要知道具体的业务场景,然后再去找这个业务场景对应的解析规则。

解析出发地目的地起飞时间以及乘机人数是最终的目的,但不能一步到位,所以需要先找到业务场景。

image.png

再去确定该用哪一个解析规则。如果数据直接传过来,它可能有很多种解析方法,那么在多种的情况下就不能够解析出来。所以必须确定是哪一种情况。

先确定业务场景,再根据 url 的表达式以及其他的一些参数确定该用哪个来解析,这个就是需求,也是数据解析的最终目的。


二、解析规则与思路

需要从数据库当中读取出解析规则,根据数据打上的标签,就是国内查询、国际查询、国内预定跟国际预定,根据前面的标签,找到规则,再去解析里面的数据。这就是这个界面存在的意义。这里面是一个配置,它落到数据库里面,打开 analyzerule 这个表:image.png

这个表里有很多字段,它们就是这个界面所存出来的结果,其中 BehaviorType 用来区分查询跟预定。

package com.air.antispider.stream.dataprocess.constants

//操作标记类别0-查询,1-预定,-1-其他

object BehaviorTypeEnum extends Enumeration{

type BehaviorTypeEnum = Value

val Query = Value(0,"Query")

val Book = value(1,"Book")

val Other = value(-1, "Other")}

这个数据表,从后往前会发现有很多的 Query ,这些都是查询的指标数据。

image.png

再往前看,直到看到预定的字段 book 。

image.png

上面的这些就是查询的相关指标的参数和预定的相关指标的参数。那么,查询跟预定前面的这些比如 flight_type,behavior_type 等是干什么的?

image.png

先看查询,先在查询类的业务场景当中,找到 query,这里有很多种情况。第三行是国内查询,第二行是国际查询,还有第四行的 c1,c2,d1。

image.png

也就是如果传过了一条数据,它是查询性的业务场景,那么要查询出发地和目的地,起飞时间这三个参数,以这三个为例,那么应该以那个为准。上图的表格能看到出发地和目的地,起飞时间都有三种选择,那么到底以哪个为准?按谁去解析?这时候就用到了前面的 flight_type,behavior_type,requestMatchExperssion 这些指标。

通过多个属性联合到一起确定出到底该用哪一个数据进行解析。

比如这里面的飞行类型 Flight_type,在 Flight_type 里,0代表国内,1代表国际。Behavior_type 的0代表查询,1代表预定。所以上表中第二三四行他们三个之间,如果进行国内查询,那么就从三种选择变成了两种选择。所以后面这几个属性的目的,都是为了确定,当有多个选择的情况确定出到底该用哪一个。这些前面的属性就是为了要确定这件事情。这件事情就是在数据库当中,数据管理界面当中的这些属性都存储在数据库中,也就是这张表。

下面在book解析的时候,他也有 book_idType,book_idCard 两种选择

image.png

那这两种选择该用哪一个?这也要用前面的这些属性来确定,如果是预定的业务场景,比如下图中的这个例子:

image.png

在预定的场景中,第一个跟第五个该用哪一个?就是通过前面这些属性来进行确定。

image.png

上面的就是解析数据的规则以及思路。

相关文章
|
1月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
55 8
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
239 2
|
2月前
|
XML 数据格式 开发者
解析数据的Beautiful Soup 模块(一)
解析数据的Beautiful Soup 模块(一)
75 0
数据解析之xpath 太6了
数据解析之xpath 太6了
|
1月前
|
数据采集 自然语言处理 搜索推荐
基于qwen2.5的长文本解析、数据预测与趋势分析、代码生成能力赋能esg报告分析
Qwen2.5是一款强大的生成式预训练语言模型,擅长自然语言理解和生成,支持长文本解析、数据预测、代码生成等复杂任务。Qwen-Long作为其变体,专为长上下文场景优化,适用于大型文档处理、知识图谱构建等。Qwen2.5在ESG报告解析、多Agent协作、数学模型生成等方面表现出色,提供灵活且高效的解决方案。
158 49
|
23天前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据
|
2月前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
4080 5
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
1月前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
64 2
|
1月前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
121 1
|
1月前
|
数据采集 机器学习/深度学习 数据挖掘
10种数据预处理中的数据泄露模式解析:识别与避免策略
在机器学习中,数据泄露是一个常见问题,指的是测试数据在数据准备阶段无意中混入训练数据,导致模型在测试集上的表现失真。本文详细探讨了数据预处理步骤中的数据泄露问题,包括缺失值填充、分类编码、数据缩放、离散化和重采样,并提供了具体的代码示例,展示了如何避免数据泄露,确保模型的测试结果可靠。
81 2

推荐镜像

更多