前言
在时下互联网信息的浪潮下,信息的传播速度远超我们的想象。微博里一条大V的帖子,朋友圈的一个状态更新,热门论坛的一条新闻,购物平台的购物评价,可能会产生数以万计的转发,关注,点赞。如果是一些非理性负面的评论会激发人们的负面感,甚至影响到消费者对企业品牌的认同,如果不能及时的采取正确的应对措施,会造成难以估计的损失。所以我们需要一个高效的全网舆情分析系统,帮助我们实时的观测舆情。
这个全网舆情分析系统,可以实现百亿条网页数据的存储、实时新增网页的抓取和存储并能对新增网页做实时的元数据提取。有了提取结果,我们还需要进行进一步的挖掘分析,这些分析包括但不限于
- 舆情的影响力诊断,从传播量级和扩散趋势来做预测,确定是否最终形成舆情。
- 传播路径分析,分析舆情传播的关键路径。
- 用户画像,对舆情的参与者提供共性特征勾勒,如性别,年龄,地域和感兴趣话题。
- 情感分析,分析新闻或者评价是正面还是负面。情感分类后进行统计聚合。
- 预警设置,我们支持舆情讨论量阈值设置,达到阈值后通知推送业务方,避免错过舆情的黄金参与时间。
这些挖掘后的舆情结果会被推送至需求方,同时也提供接口给各业务方搜索,查询使用。下面我们就展开讨论系统设计中可能会遇到的问题,我们会重点关注系统设计中存储相关的话题,针对这些问题找到一个最优化的方案。
系统设计
对于一个舆情系统,首先需要一个爬虫引擎,去采集各大主流门户,购物网站,社区论坛原始页面内容,微博,朋友圈的各类消息信息。采集到的海量网页,消息数据(百亿级别)需要实时存储下来。再根据网站url获取网页之前还需要判断一下是否是之前爬过的页面,避免不必要的重复爬取。采集网页后我们需要对网页进行萃取,去除不必要的标签,提取标题,摘要,正文内容,评论等。萃取后的内容进入存储系统方便后续查询,同时还需要把新增的抽取结果推送至计算平台进行统计分析,出报表,或者后续提供舆情检索等功能。计算的内容根据算法不同可能需要新增数据,也可能需要全量数据。而舆情本身的时效敏感性决定了我们系统一定要能高效处理这些新增内容,最好是秒级别延时后就可以检索到新热搜。
我们可以总结下整个数据流如下:
根据上图我们不难发现,设计一个全网舆情的存储分析平台,我们需要处理好抓取,存储,分析,搜索和展示。具体我们需要解决如下问题:
- 如何高效存储百亿级别的网页原始信息,为了提高舆情分析的全面性,准确性,我们往往希望可以尽可能多的爬取网页信息,再根据我们设置的权重聚合。所以网页的历史全库会比较大,积累数百亿的网页信息,数据量可以达到百TB甚至数PB。在数据量如此之大的情况下,我们还需要做到读写毫秒级别的低延时,这使得传统数据库难以满足需求。
- 如何在爬虫爬取网页之前判断是否之前已经爬取过,针对普通网页,舆情在意他们的时效性,可能我们对同一个网页只希望爬取一次,那我们就可以利用网页地址做爬取前去重,减少不必要的网页资源浪费。所以我们需要分布式存储提供基于网页的高效随机查询。
- 如何新增原始网页存储完成后进行实时的结构化提取,并存储提取结果。这里我们原始的网页可能是包括各种html的标签,我们需要去除这些html的标签,提取出文章的标题,作者,发布时间等。这些内容为后续舆情情感分析提供必要的结构化数据。
- 如何高效的对接计算平台,流式新增提取后的结构化数据进行实时的计算。这里我们需要根据网页,消息描述的内容做分类,进行情感识别,识别后的结果统计分析。由于全量分析时效性差,加上舆情往往关注最新的新闻,评论,所以我们必须做增量分析。
- 如何提供高效的舆情搜索,用户除了订阅固定关键词的舆情以外,做一些关键词搜索。例如希望了解竞争公司新产品的一些舆情分析。
- 如何实现新增舆情的实时推送,为了保证舆情的时效性,我们不仅需要持久化舆情分析结果,同时也要支持推送舆情结果。推送的内容通常是我们实时分析出来的新增舆情。
系统架构
针对上面介绍这些问题,我们下面来介绍下如何基于阿里云上的各类云产品来打造全网百亿级别的舆情分析平台,我们会重点关注存储产品的选型和如何高效的对接各类计算,搜索平台。
爬虫引擎我们选用ECS,可以根据爬取量决定使用ECS的机器资源数,在每天波峰的时候也可以临时扩容资源进行网页爬取。原始网页爬取下来后,原始网页地址,网页内容写入存储系统。同时如果想避免重复爬取,爬虫引擎抓取之前要根据url列表进行去重。存储引擎需要支持低延时的随机访问查询,确定当前url是否已经存在,如果存在则无需重复抓取。
为了实现网页原始内容的实时抽取,我们需要把新增页面推送至计算平台。之前的架构往往需要做应用层的双写,即原始网页数据入库同时,我们重复写入一份数据进入计算平台。这样的架构会需要我们维护两套写入逻辑。同样的在结构化增量进入舆情分析平台中,也有类似的问题,抽取后的结构化元数据也需要双写进入舆情分析平台。舆情的分析结果也需要一份写入分布式存储,一份推送至搜索平台。到这里我们可以发现,图中的三根红线会带来我们对三个数据源的双写要求。这会加大代码开发工作量,也会导致系统实现,维护变的复杂。每一个数据源的双写需要感知到下游的存在,或者使用消息服务,通过双写消息来做解耦。传统数据库例如mysql支持订阅增量日志binlog,如果分布式存储产品在可以支撑较大访问,存储量的同时也可以提供增量订阅就可以很好的简化我们的架构。
网页数据采集入库后,增量流入我们的计算平台做实时的元数据抽取,这里我们可以选用函数计算,当有新增页面需要提取时触发函数计算的托管函数进行网页元数据抽取。抽取后的结果进入存储系统持久化后,同时推送至MaxCompute进行舆情分析,例如情感分析,文本聚类等。这里可能会产生一些舆情报表数据,用户情感数据统计等结果。舆情结果会写入存储系统和搜索引擎,部分报表,阈值报警会被推送给订阅方。搜索引擎的数据提供给在线舆情检索系统使用。
在介绍完整体架构后,下面我们看下在阿里云上如何做存储选型。
存储选型
通过架构介绍我们再总结一下对存储选型的要求:
- 可以支撑海量数据存储(TB/PB级别),高并发访问(十万TPS~千万TPS),访问延时低。
- 业务随着采集订阅的网页源调整,采集量会动态调整。同时一天内,不同时间段爬虫爬下来的网页数也会有明显波峰波谷,所以数据库需要可以弹性扩展,缩容。
- 自由的表属性结构,普通网页和社交类平台页面的信息我们需要关注的属性可能会有较大区别。灵活的schema会方便我们做扩展。
- 对老数据可以选择自动过期或者分层存储。因为舆情数据往往关注近期热点,老的数据访问频率较低。
- 需要有较好的增量通道,可以定期把新增的数据导出至计算平台。上面的图中有三段红色虚线,这三部分都有个共同的特点需要可以实时的把增量导至对应的计算平台做计算,计算后的结果再写入对应的存储引擎。如果数据库引擎本身就支持增量,则可以很大程度简化架构,减少之前需要全量读区筛选增量,或者客户端双写来实现得到增量的逻辑。
- 需要可以有较好的搜索解决方案(本身支持或者可以数据无缝对接搜索引擎)。
有了这些需求后,我们需要使用一款分布式的NoSQL数据来解决海量数据的存储,访问。多个环节的增量数据访问的需求,业务的峰值访问波动进一步确定弹性计费的表格存储是我们在这套架构中的最佳选择。表格存储的架构介绍可以参考表格存储数据模型
TableStore(表格存储)相比同类数据库一个很大的功能优势就是TableStore(表格存储)有较完善的增量接口,即Stream增量API,Stream的介绍可以参考表格存储Stream概述。场景介绍可以参考Stream应用场景介绍,具体API使用可以参考JAVA SDK Stream。有了Stream接口,我们可以很方便的订阅TableStore(表格存储)的所有修改操作,也就是新增的各类数据。同时我们基于Stream打造了很多数据通道,对接各类下游计算产品,用户甚至不需要直接调用Stream API,使用我们的通道直接在下游订阅增量数据,自然的接入了整个阿里云的计算生态。针对上面架构中提到的函数计算,MaxCompute,ElasticSearch和DataV,TableStore(表格存储)都已经支持,具体使用可以参考:
TableStore(表格存储)在属性列上,是自由的表结构。针对舆情分析这个场景,随着舆情分析算法的升级我们可能会新增属性字段,同时针对普通网页和微博这类社交页面的属性也可能不尽相同。所以自由表结构相比传统数据库可以很好的匹配我们这个需求。
在架构中,我们有三个存储库需求。分别是原始页面库,结构化元数据库和舆情结果库。前两者一般是一个离线存储分析库,最后一个是一个在线数据库。他们对访问性能,存储成本有着不同的需求。表格存储有两种类型的实例类型支持存储分层,即高性能和容量型。高性能适用于写多读多的场景也就是做为在线业务存储使用。容量型适合写多读少的场景,也就是离线业务存储用。他们的写入单行延时都可以控制在10毫秒内,读取高性能可以保持在毫秒级别。TableStore(表格存储)同时支持TTL,设置表级别数据过期时间。根据需求,舆情结果我们可以设置TTL,只提供近期数据的查询,较老的舆情自动过期删除。
有了TableStore(表格存储)的这些功能特性,系统对存储选型的六项要求就可以得到很好的满足,基于TableStore(表格存储)可以完美的设计和实现全网舆情存储分析系统。
后记
本文对实现海量数据舆情分析这一场景中会遇到的存储和分析问题进行了总结,介绍了如何通过使用阿里云自研的TableStore(表格存储)在满足业务基本数据量的前提下,通过Stream接口和计算平台的对接实现架构简化。TableStore(表格存储)是阿里云自主研发的专业级分布式NoSQL数据库,是基于共享存储的高性能、低成本、易扩展、全托管的半结构化数据存储平台,舆情数据存储分析是TableStore在大数据处理领域的重要应用之一。其他场景使用可以参考TableStore进阶之路。
更多的应用场景和技术探讨,欢迎加入我们的钉钉交流群(群号:11789671)。
相关推荐
《舆情分析系统详细设计》 舆情分析系统是现代企业、政府机构乃至个人在信息时代进行品牌维护、政策决策和公关管理的重要工具。本系统详细设计文档涵盖了系统的整体架构、功能模块、技术选型以及实现策略等多个关键...
《互联网舆情干扰系统服务项目技术方案...\n\n总结来说,互联网舆情干扰系统旨在构建一个高效、精准、实时的舆情管理平台,通过对全网信息的深度挖掘和智能分析,实现对负面舆情的有效控制,保障网络环境的健康和谐。
在面对网络上错综复杂的信息流和舆情动态时,大数据技术能够通过全网舆情分析,实现态势感知,及时对公众关注的热点问题进行监测和分析,形成舆情分析和预警报告。这样的分析能力有助于媒体及时调整报道方向和内容,...
【系统处理流程】中,智慧舆情监测系统主要包括全网舆情和多语言的覆盖,大数据的采集、分析和报告,以及性能升级。系统通过监听各种数据源,获取并更新信息,利用大数据服务中心进行数据去重、转换和索引。通过文本...
"publicopoinsys"是一个专为舆情监控与分析设计的开源系统。在当前信息化社会,舆情管理对于企业和组织至关重要,它能帮助企业及时了解公众舆论动向,预防和应对可能的公关危机。开源意味着该系统是公开源代码的,...
《互联网舆情监控平台建设方案》是一项旨在通过先进的信息技术手段,实时监测、分析并管理网络上公众舆论的技术方案。这一方案的提出,对于政府、企业以及其他社会组织来说,具有重大的实践意义,因为它能够帮助这些...
4.舆情监测:通过对重要农产品、重点企业、重点品牌的全网舆情信息的实时监测,敏感信息及时预警,实现网络舆情的快速获取。 农业大数据分析应用平台解决方案旨在提高农业数据采集的效率和准确性,解决数据来源多头...
### 跨境电商综合实训平台大数据分析子系统大仪论证报告关键知识点解析 #### 一、项目背景与目的 **跨境电商综合实训平台大数据分析子系统**的构建旨在为学生提供一个集理论学习与实践操作于一体的综合性平台。...
智慧保险大数据解决方案 智慧保险大数据解决方案是指通过大数据分析,找到存量客户中潜在的出国金融产品客户,分析此类高价值...舆情管家商情管家用户洞察系统: 1. 客户获取 2. 客户转化 3. 客户服务 4. 客户挽回
- 该系统基于总体架构设计,包含基础软件支持、数据采集、清洗、加工、结构化,以及各种风险监测和分析平台。 - 使用云存储服务,构建网络信息数据库、数据分析库,以及物联网相关的数据存储和分析库。 6. **平台...
最后,大数据平台和工具,如用友的全网数据分析产品,提供了数据源集成、数据整合、决策探索分析等功能,支持多种数据采集、存储和处理方式,确保企业能够高效地利用大数据资源,实现业务监测、洞察、盈利和重塑。...
本文主要围绕基于QT的网络爬虫进行设计与实现,旨在理解爬虫的基本原理,掌握其开发过程,并通过QT这一跨平台的C++图形库来构建一个功能完善的网络爬虫系统。 ### 第一章 概述 1.1 **课题背景及意义** 随着互联网...
通过用户使用追踪和ID打通,联想能快速响应全球全网用户舆情和用户反馈,优化客户服务,将响应时间缩短至20分钟。此外,大数据还提升了供应链管理的预测准确性,减少了10%~20%的误差,超越了行业专家的水平。在销售...
这一架构通常包括数据采集、存储、处理、分析和应用等多个层面。例如,通过分布式计算技术,银行能够提高数据分析的速度和效率,从而更快地响应市场变化和客户需求。同时,利用云计算数据中心的整体方案拓扑,银行...
- **LeapHD**:作为联想大数据计算平台,提供数据存储、处理和分析的基础,支持企业级全量数据融合,是构建数据湖的关键。 - **LeapIOT**:物联网平台,覆盖多个行业,实现设备连接、管理及边缘分析,助力智能制造和...
2. **网络爬虫技术**:适用于大规模全网信息采集、舆情监控、竞品分析等领域。 3. **物联网技术**:通过无线射频标签(RFID)技术实现物品信息的自动识别和追踪。 4. **传感器技术**:广泛应用于工业制造领域,...
- **LeapHD**:作为联想大数据计算平台,提供数据存储、处理和分析的基础,是企业级全量数据融合平台(数据湖)的关键。 - **LeapIOT**:联想物联网平台,服务于制造业及智慧城市等多个领域,实现设备连接、管理和...
区块链技术通过加密算法、时间戳、共识机制和奖励机制等技术开辟网络谣言治理的新路径,重塑网络舆情生态与网络信任系统。具体来说,加密算法保证了数据的隐私性和安全性,时间戳为数据提供了时间顺序的证明,共识...
- **大数据中心建设**:实现数据的集中存储和分析。 - **可视化管理**:提供直观的数据展示和决策支持。 **服务体验**: - **游客体验**:通过智能化服务提升游客满意度。 - **营销效果**:增强营销活动的效果和...