共计 4072 个字符,预计需要花费 11 分钟才能阅读完成。
简介: 开源最大的特色就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的单干正是开源与云生态共生共荣的榜样。值此单干三周年之际,咱们邀请业界资深人士相聚云端,共话云上 Elasticsearch 生态与技术的将来。
开源最大的特色就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的单干正是开源与云生态共生共荣的榜样。值此单干三周年之际,咱们邀请业界资深人士相聚云端,共话云上 Elasticsearch 生态与技术的将来。
本篇内容是清博大数据技术副总裁王欢带来的基于 Elasticsearch 技术的利用与实际分享。
分享人:清博大数据技术副总裁王欢
对于 Elasticsearch 在清博的利用和实际,本文将通过四个局部开展介绍:
- 对于清博
- 典型业务场景
- 痛点与诉求
- 阿里云 Elasticsearch 实际与收益
一、对于清博大数据
清博数据成立于 2014 年,是一家专一于内容数据畛域,是基于网络公开数据,依靠自然语言解决、常识图谱、事理图谱等 AI 技术,开掘有价值的数据以及关系,为政务部门、企业、媒体和高校的网络空间数据治理,提供一站式解决方案的公司。
清博大数据的次要业务布局有:
- 清博指数,曾经成为业内出名的新媒体账号评估服务体系;
- 清博舆情,是业内支流舆情 SaaS 服务平台,为数十万 B 端网络品牌跟踪治理提供一站式服务;
- 清博融媒,助力政企、校园的融媒体建设;
- 产业数据,基于数据和技术的积攒,在汽车大数据和环保大数据等产业数据畛域也有布局。
二、典型业务场景
上文所提到的业务方向中都有 Elasticsearch 的参加和反对。上面介绍几个典型的利用场景。
清博舆情
下图展现的是清博舆情中常见的剖析模块。
清博舆情利用 NLP 技术给常见的每条新闻及评论打上 7 个情绪标签,而后基于标签剖析每天的情绪走势和情绪散布状况。这个利用能够了解为,针对某个事件,公众在不同情感表白下的声量大小。
另外,咱们也对事件的公布和媒体敏感信息报道进行渠道统计,统计后就能够直观的看到一个事件的重要或敏感的流传节点,这就为业务的决策者提供了十分直观的决策参考。除此之外,零碎还为用户提供发文类型、提及地区、热词剖析等十多个罕用的统计分析模块。
以上所形容的统计分析,都是基于 Elasticsearch 弱小的聚合统计能力,包含嵌套的统计能力实现的。因为清博大数据提供的是线上的 SaaS 服务,在同个页面会爆发申请查问或聚合多个接口等需要,这就对 Elasticsearch 的聚合统计性能和内存使用率,都提出了更高的要求。
多维度的检索
多维度检索在清博大数据也是比拟常见的业务场景。在舆情高级检索模块,清博检索提供了基于工夫、公布平台、情感、媒体类别、公布地区等十多个维度的复合检索。同时还提供了基于 term 和 match price 的准确或含糊检索的简单查问形式。
不同于日志检索场景,清博的多维度检索业务,须要衡量召回率和准确率,须要对题目跟注释设置不同的打分策略。比方给题目设置更高的权重,给注释设置绝对较低的权重。另外,产品还能对包含阿拉伯语、日语、韩语、德语、法语等多国语言进行文本检索,这就波及到了多语种的分词与检索召回。
账号画像
下图是清博指数平台一个微信公众号的画像页面,展现了公众号系列数据,包含浏览统计、浏览点赞、在看、发文趋势、公布习惯等数据指标的统计模块。通过这些模块,用户能够直观的理解一个公众号的公布状况、文章流传状况等,不仅给运营者提供了全方位、可参考的数据,也给广告投放的用户提供主观投放参考。
三、痛点与诉求
上文列举的不同业务场景都离不开 Elasticsearch 弱小的查问和聚合能力,那么实现这样的性能有哪些痛点与诉求呢?
从下面业务场景列举能够看出,清博大数据的业务基本上都是基于文本检索,那么它具备的特点包含:
- 须要反对多种语言检索;
- 因为是在线的 SaaS 零碎,须要实现亚秒级响应;
- 须要反对上百个索引字段;
- 须要满足聚合查问多和迭代频繁;
基于以上的业务特点就要求 Elasticsearch 具备高性能、均衡检索的召回率和准确率,并具备动静伸缩的能力。
基于以上的业务特点和服务要求,对清博大数据来讲,业务痛点能够分为三个方面:
1、老本
单篇文档不同于日志数据,占用索引空间大,所需的 SSD 存储低廉;
2、运维
当业务数据一直减少,须要频繁扩节点;同时,因为是在线 SaaS 业务,所以须要实现亚秒级响应速度;并且在节点降级、减少内存等在线降级时,不进行服务。
3、兼容性
实现 Elasticsearch 集群迁徙、本地化部署,业务代码无感知适配;云端备份索引能够兼容开源的 Elasticsearch。
针对以上的业务痛点,清博大数据对云端 Elasticsearch 也提出了三点诉求:
1、老本
平滑扩缩容,索引反对冷热拆散,热数据才放到 SSD 存储,从而升高存储老本;
2、运维
须要有简略的运维工具反对一键扩缩容和节点降级等能力;须要反对丰盛的运维指标,在达到肯定阈值时,能够有不同类型的报警告诉;须要反对平滑降级不对业务产生影响;
3、兼容性
阿里云 Elasticsearch 100% 兼容开源生态,并反对自定义的分词器,实现热更新分词词典,不便备份与复原。云上备份与索引,能够疾速在开源 Elasticsearch 上复原或拉起服务。
四、云上实际与收益
清博大数据在迁徙之前是基于 Apache Solr 自建的搜寻集群,为了晋升搜寻性能和坚固集群稳定性,创立了很多小的 Solr 集群。在上游数据分析之后,通过一套路由机制写入到不同的 Solr 集群,在查问时通过同一套机制,主动抉择对应的集群。在不同的集群中查问不同的数据,能够扩散单个集群压力,如果有小集群异样只会影响局部业务。
然而太多扩散且小的集群也会呈现很多问题,比方减少故障的概率、短少对立运维治理平台、运维治理老本过高、无奈主动裁减 Shard、须要手动减少节点扩容等等。
相比之下,阿里云 Elasticsearch 提供智能的、对立的运维平台,不仅能够多维度地监控告警,也能及时发现集群问题,而且阿里云 ES 专家的反对也缩小了大量的运维老本。
阿里云 ES 主动 Shard,晋升零碎性能,进步了零碎的检索性能;阿里云 ES 节点的伸缩能力,能够灵便应答业务逐渐减少,节俭大量一次性投入的老本。
在迁徙过程中,清博大数据同步降级了数据架构,整个平台是分层的数据模式。最底层是数据接入层,包含上述提到的各平台社交文本数据。所有的数据源首先会推送到 Kafka 集群,通过音讯队列对各个业务模块进行检索。
再往上一层是数据处理和存储层。在存储层,像新闻标题、公布工夫、原始 URL 等信息存储到 HBASE。一些不须要检索内容的镜像数据会存到 OSS 上进行长期存储,并把 OSS 的门路存到 HBASE,不便前面的查看。
在数据处理这一层,应用 Flink 实时流解决引擎,通过 RPC 的形式实时调用 NLP 相干的算法服务,为每一条文本内容打上情感属性、情绪分类、新闻类型和地区等标签,不便上游业务应用。
再上一层是整个 ES 的基础设施,包含 ES 集群和智能网关两层服务。在 ES 集群层,依据业务特点把近两年的数据放到冷数据集群,应用价格绝对较低的高效云盘,把近三个月的数据放到热数据集群,应用 SSD 盘进行冷热集群拆散,同时依据不同平台大小对索引进行拆分,分为微信、微博、短视频等等索引。
为了进步 ES 的安全性和拜访的可控性,清博大数据开发了智能网关服务,屏蔽了直连 ES 的形式。在智能网关层,有很多业务都要调用 ES 数据,为了避免单个业务占用过多资源,影响到其余业务应用,网关能够为每个业务调配各自的 QPS 并设置优先级。一旦集群呈现问题,能够对低优先级的业务进行熔断限流,以保障高优先级的业务。
因为在 ES 的数据层把索引依照起源进行拆分,数据被扩散到多个集群中,这会给查问带来肯定的麻烦。为了不便前端业务的调用,网关路由所有模块能够依据业务端查问的数据类型,主动路由到对应的索引,同时网关层也会对业务端查问进行优化,比方依据时间段抉择对应索引,而不是扫描全副索引。
最下面一层是业务接入层,包含上文提到的舆情业务、指数业务、融媒业务等等。
基于阿里云 ES 打造的对立数据平台,也能够看作是一个分层架构,如下图。
最底层文档写入 ES 索引前,会先进入路由层。路由服务会依据文档的起源、公布工夫、机型状态等,抉择对应的集群以及索引,比方主动抉择对应平台或者是对应索引所在的机器。
对日增数据量比拟少的平台,会依照周或月进行索引拆分。对日增数据量很大的平台,路由会按天创立索引,这样就防止单个索引过大、数据过于歪斜而影响整个集群性能的问题,使每个索引的大小放弃基本相同。
再向上一层是多个 ES 集群,包含不同平台的数据集群和冷热数据集群。后面一层通过路由策略之后,最终数据会扩散到对应集群的对应索引中。为了不便查问,通过开发的 Proxy,对用户特定的索引查问、多索引查问和聚合查问,甚至跨集群查问等,能够对数据进行查问汇合,做到对业务端底层的索引细节屏蔽、业务端无感知、升高业务端调用老本,同时也不便底层的迭代降级。
基于以上的架构,在阿里云的 ES 数据平台提供近三个月超过 100 亿的热数据,在近三个月的索引占用空间超过 60TB,日增网络公开内容数据超过 1.2 亿,单篇文档搜寻字段超过 200。
在这么大数据量的状况下,频繁变动降级会带来一些问题。值得一提的是,利用阿里云 ES 诊断性能,能够很不便地发现 ES 集群潜在的问题,也为集群的运维方向提供诊断经营。
在阿里云 ES 各种性能的加持下,清博大数据平台的稳定性较之以前晋升了 60%,整个运维工夫缩小了 80%。正是因为阿里云 Elasticsearch 平台的各种能力,让团队能够把更多的精力放到产品开发和迭代上,比方基于平台能力疾速开发了轻薄融媒平台,为清博融媒平台提供内容检索服务。
在开发的政府补贴类利用中提供政策搜寻服务,为前面的举荐算法提供杰出的后果,也为年初公众号经营画像类利用提供相干统计服务。除此之外,基于平台的能力还能提供更多的产品状态。
原文链接
本文为阿里云原创内容,未经容许不得转载。