【0-1系列】从0-1快速了解搜索引擎是什么以及怎么用(上)

news2024/11/28 3:21:01

友情链接

  • 社区开发版安装部署与使用教程
  • 社区版家族V2024.5版本更新说明

START>>1.快速了解搜索引擎

什么是搜索引擎数据库

搜索引擎数据库是一类专门用于数据内容搜索的NoSQL数据库,是非结构化大数据处理分析领域中重要的基础支撑软件。

伴随互联网、移动互联网、物联网、5G等信息通信技术及产业的发展,全球数据量呈现爆发式增长的趋势。根据IDC数据显示,到2028 年,全球数据圈(global datasphere)预计将增长到 400 ZB,非结构化数据成为全球数据量的主要来源。

非结构化数据指的是无法以预定义格式存储或适合现有数据模型的数据,比如图像、视频、音频、用户行为等等。数据结构复杂,不方便用传统的数据库二维逻辑来表现,但其中却蕴含着丰富的数据价值,因此如何高效地处理分析非结构化数据是数据库领域面临的机遇和挑战。

在这样的时代背景下,搜索引擎数据库逐渐被人们所熟知,它可以使用索引对数据中的相似特征进行归类,提供快速准确的数据检索服务。通过对索引和检索过程的优化,可以处理大量文本、半结构化或非结构化的数据。

搜索引擎数据库的应用十分广泛。

诞生的初期,搜索引擎数据库主要是为了解决关系型数据库中长文本检索效率低下的问题,所以又称为全文数据库、非结构化数据库等等。随着技术的发展,目前衍生出了多种处理不同类型来源数据的检索引擎并集成在不同的数据库中。例如除了长文本数据、常见的数值、日期之外,还可以处理各种各样的非结构化数据,例如 IP、地理位置信息、图片、音视频等等。

凭借在数据查询效率方面的优势,搜索引擎数据库在数据处理方面的地位越来越高,并在应用程序搜索、网站搜索、企业搜索、智能问答、图像与语音搜索、语义搜索、业务分析和安全分析等方面有着广泛的应用。

篇幅原因,更多搜索引擎数据库的背景介绍以及所涉及的技术点剖析可点击下方对应链接进行查看:

  • 搜索引擎数据库介绍
  • 搜索引擎相关技术点:全文检索、倒排索引、分片

Scope是什么

Scope是星环自研的搜索软件,除了保留底层的lucene框架和工具层外,上层进行了全自主研发改造,扬弃了开源产品中的那些带来瓶颈和限制的模型,用更贴合海量数据大集群场景的模型来代替,打造出了自主可控的搜索引擎产品。

适用场景

文档数据库

  • 存储半结构化、非结构化数据
  • 功能和性能均优于Mongodb

日志分析与监控

  • 统计和日志类时间序列数据的存储和分析

舆情分析

  • 高聚合率的统计分析,如:热词跟踪

搜索引擎

  • 多条件模糊查询
  • 不指定列的全文搜索

为什么选择Scope?

技术栈全面可控,数据安全有保障

一直以来,我国的上游核心技术频繁的遭遇“卡脖子”,严重影响了我国关键科技和产业的发展。在过去几年内, Elasticsearch 数据泄露事件频发,安全风险加剧。数据泄露事件频发给国内各行业用户敲响了数据安全的警钟。同时,ES在2021年更改了其开源协议,对其产品的许可协议增加了限制,也带来了更多的商业风险。

因此,自主可控和国产化替代迫在眉睫。

在这个体系和背景下,全链路的打通,软硬件的结合都是重要的环节。搜索产品作为一款软件,也要在国产化适配以及兼容性上都要做到更好。

Scope可以满足各类硬件环境需求以及信创需求,对国内主流服务器架构以及操作系统深度适配,并且支持混合架构部署,允许不同配置、不同架构、不同操作系统的机器在同⼀集群中部署和使用,充分利用集群资源。

除此之外,Scope还为用户提供了企业级安全保障,从以下3个维度全方位保护用户数据的安全:

  • 用户认证,我们基于SASL提供plain与GSSAPI的认证方式;
  • 数据传输加密:我们支持基于SSL/TLS的加密方式;
  • 而在用户权限上,我们同样提供表/索引级别的权限控制。确保您的集群可以放心大胆的使用。
国产化高效替代,性能服务双保障

Scope提供PB级海量数据的交互式多维检索分析服务,单实例可突破至百TB的数据存储,是Elasticsearch 的 5 倍以上,大大降低用户硬件成本。数据批量写入速度相对 Elasticsearch 提升 40%。相对于Elasticsearch, Scope 具有很强的容灾和数据恢复能力,重启恢复时间在 TB 级数据量下控制在分钟级,不到Elasticsearch 的 1/10。

image.png

除此之外,在满足了用户各类检索需求(日志检索、全文检索等)的同时也提供了更好的产品服务。

image.png

架构优化

为实现更好的集群稳定性,Scope在分布式层对原有架构进行重构,将共识算法传统的流言传播模式goosip转变为Raft的架构。通过架构的优化,数据的同步逻辑也从过去的最终一致性转变为强一致性。从下图可以看出两类算法的差异。

image.png

原有goosip架构更偏向于主节点数据写入完成后,返回请求成功的响应,然后在内部做数据同步,最终达到所有节点数据一致的情况,即最终一致性。在该模型下,对于常规的日志等低价值信息比较友好,若存储高价值或不允许丢失的信息,将存在一定风险。例如,当集群中node1节点与集群网络连接断开,其他节点会重新组成集群,选举主节点。但是若node1节点数据并未及时同步,客户层面感知将会是数据丢失,因为其新写入数据在未同步的节点中不存在。同时,当node1恢复连接后加入集群,会因其不是主节点而反向同步其他节点,最终数据彻底丢失。

Scope选择升级Raft架构作为一致性协议,其对于数据同步、写入成功等请求,是在多数节点写入后返回。即使集群中某一节点出现上述失联问题,数据依旧可以被检索到,杜绝数据完全丢失。对于Scope的管理节点,同样采用Raft模式,可以有效地规避集群脑裂,也降低了大规模集群稳定性问题的出现。

Raft协议详解:
  • 分布式一致性技术是如何实现的
  • 一致性协议Raft的工作原理及介绍
全新读写方式与读写分离

image.png

Scope采用类bulkload的写入模式,有效降低读写混合场景对产品带来的压力。在bulkload的写入模式下,写入操作被拆分成两个步骤:首先是数据加工,生成数据库所需的数据格式;其次为数据加载,将生成的文件置于存储目录,使得检索引擎可以读取加载到该数据。一般来说,前者在cpu、内存中开销占比更大,它涉及索引的生成、数据的加工等一系列逻辑;而后者,则以数据传输过程的网络/磁盘开销为主并夹带少量的cpu开销,这部分网络/磁盘的开销对比当前主流的集群配置是可控和低占比的。

根据上述逻辑,将两步骤别放于不同集群或不同的服务器中执行,可以有效降低Scope集群的写入压力,提供更多的资源用于检索,实现一套读写分离的架构。同时,bulkload的写入模式同样适配实时流处理引擎slipstream中。在实时的写入时,实现降低Scope集群开销的效果。

存储优化 资源高效利用

image.png

Scope在存储方面做了大量的优化工作,在此着重描述3个典型优化点,分别为冷热数据分层、降低数据膨胀与堆外内存技术

首先,Scope提供数据标签机制,并以此实现冷热数据分层。支持对节点/磁盘/以及索引数据进行标签化处理。对于分区表或者使用频率不同的表,可以通过标签机制加以区分和存储,实现热数据热存储,冷数据冷存储的效果。同时支持标签的随时更改,实现数据冷热的高效切换。

其次,Scope通过AutoMerge与索引机构优化实现降低数据膨胀。多数搜索引擎为提升检索的性能,选择牺牲存储能力或生成大量索引数据的方式。对比传统数据库或hdfs类大数据存储产品,存储开销会变得很大。Scope提供索引的AutoMerge机制,对于琐碎的索引文件进行自动合并,也进一步对原始的数据文件进行存储结构上的压缩和优化,可以有效降低数据的膨胀系数。

同时,Scope使用Search的off-heap机制,并对该机制进行持续性的优化,将原本堆内存储的部分索引的持久化内容放于堆外。一方面降低堆的使用开销,留出更多资源满足读写需求,另一方面,单机数据量---生成的索引数据数据量---内存可加载的索引数据,三者为正相关的关系,任何一者达到上限意味着节点容量达到上限,而内存往往是最先掣肘的一个因素。对此,Scope将持久化部分放到堆外,意味着可以有更多的数据被加载进来,从而有效地提升了产品的单机容量。

通过上述三个及其他种种技术优化,使得Scope在实际的生产环境中,索引数据的磁盘开销同比降低13%,单机存储规模从ES的5-20TB到达现有的50TB,在部分场景中甚至可以到达100+TB

完备的数据流转

image.png

Scope借助星环SQL处理引擎Quark,以及自身的生态适配器Adapter,可以实现完备的数据流转方案。一方面,Scope通过Adapter实现了ES接口的对齐,确保用户可以像使用ES⼀样操作Scope产品。在ES的替换和迁移时,降低用户学习新的数据库接口和重新开发的工作压力。Scope通过Adapter可以很好规避这⼀问题,同时对于分词器之类的插件,以及logstash/beats类组件,Scope同样支持和兼容。

另一方面,Scope基于统一的Quark引擎提供了完整的SQL语法支持并实现了Scope SQL(搜索语法的SQL扩展),基于标准SQL、检索语义,可以覆盖大部分检索和入库的请求,实现跨存储的数据流通。

也就是说,用户可以将TDH跑批加工的数据,入库到Scope中提供检索业务。通过和quark SQL优化器的深度整合,优化数据搜索的执行过程,进一步提供了更好的性能。

Scope基于Quark还支持外表映射的操作,实现一份数据可以通过SQL或API的方式进行处理,开发者无需了解底层架构就可以开发出高效的搜索引擎,实现在PB数据量级上的秒级全文搜索。

企业案例展示

Transwarp Scope聚焦于Elasticsearch检索场景平替,高度兼容Elasticsearch接口,可实现Elasticsearch业务的平滑迁移,如日志检索、全文检索以及数据智能等场景,并在产品稳定性、扩展性、高性能、高可用、成本等方面具有明显的优势。

客户痛点

某运营商有基于Hbase的主键精确查询和基于Elasticsearch的全景查询2套业务。在全景查询场景中,客户采用实时和离线2套集群,数据流转复杂,并且随着数据量的高速增长,系统稳定性经常出现问题。当集群出现问题时,Elasticsearch重启需要小时级别,集群恢复速度慢。在性能问题方面,读写资源无法隔离,拖累查询性能。

解决方案

因此,该用户利用星环科技分布式搜索引擎Transwarp Scope替换掉了Elasticsearch,实现了实时和离线业务的统一,通过bulkload和实时流计算引擎Slipstream实现了数据的统一存储和查询。

image.png

落地效果

入库方面,过去15+TB的日增离线数据可以快速加载到Scope当中,省去了两套Elasticsearch集群的快照同步环节,入库性能提升4倍。过去T+1模式入库逻辑直接通过微批的方式实现了分钟级延迟,集群的重启时间从6-10小时压缩到了分钟级,大幅度降低了业务中断时间。集群规模上,将过去两套Elasticsearch集群整合成统一的大集群,并且保障100+节点稳定运行,系统架构更加简单,运维成本更低。

下一章节将为您介绍如何安装与部署,以及使用示例。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

scene graph generation benchmark关于visual genome的数据划分(train,test,val)

scene graph generation benchmark关于visual genome的数据划分(train,test,val) 前言 前言 很多做scene graph generation,准备测试的同学,发现visual genome并没有提供官方的训练train,测试t…

竞赛选题 python opencv 深度学习 指纹识别算法实现

1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python opencv 深度学习 指纹识别算法实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:4分创新点:4分 该项目较为新颖…

【AI大模型】基于ChatGLM-6b从零开始本地部署语言模型,步骤详细无坑版

1.什么是ChatGLM-6B ChatGLM-6B 是的一种自然语言处理模型,属于大型生成语言模型系列的一部分。"6B"在这里指的是模型大约拥有60亿个参数,这些参数帮助模型理解和生成语言。ChatGLM-6B 特别设计用于对话任务,能够理解和生成自然、…

Linux 软链接

# 语法 ln -s <文件夹or文件的真实路径> <自定义路径别名> # 例子 ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ~/ens33

Android集成mapbox教程

目录 简介准备工作创建Token系统开发简介 Mapbox是来自美国的一家为开发者提供地图服务和开发工具的开放平台。Mapbox以开源的形式构建了矢量瓦片技术生态,开发了矢量切片工具、瓦片服务传输框架。Mapbox的底图平台非常受欢迎,特别是开发者和学生群体,可以使用免费的开源软…

matlab结合python的CoolProp库来进行热泵热循环仿真

前言 需要安装python&#xff0c;不同matlab版本需要下载对用的python版本&#xff01;&#xff01;&#xff01;&#xff01;&#xff0c;切记&#xff01;&#xff01;&#xff01;&#xff01;否则程序无法运行&#xff0c;下图是展示了matlab和python之间的版本对应 安装…

数据分析思考

数据分析工作流程 在我的数据分析职业发展过程中&#xff0c;我从基础的数据提取工作开始&#xff0c;逐步深入到更为复杂和具有战略意义的领域。这包括构建和完善指标体系、设计风险预警模型&#xff0c;以及与多部门协作完成公司整体经营分析等工作。 在这个过程中&#xf…

会声会影2024旗舰版汉化最新安装包下载方法步骤

嗨&#xff0c;亲爱的CSDN的朋友们&#xff01;&#x1f389;今天&#xff0c;我要跟大家分享一款让你的视频编辑体验升级的神器——会声会影2024最新版本&#xff01;✨如果你是一个热衷于创作视频内容的创作者&#xff0c;那么你一定不能错过这个软件。它不仅功能强大&#x…

为什么企业需要数据挖掘平台?哪个比较好呢?

什么是数据挖掘&#xff1f; 数据挖掘就是从大量的数据中去发现有用的信息&#xff0c;然后根据这些信息来辅助决策。听起来是不是跟传统的数据分析很像呢&#xff1f;实际上&#xff0c;数据挖掘就是智能化的数据分析&#xff0c;它们的目标都是一样的。但是&#xff0c…

前端面试js高频手写大全

res.push(fn(arr[i])) } return res } 3. reduce实现数组的map方法 Array.prototype.myMap function(fn,thisValue){ var res []; thisValue thisValue||[]; this.reduce(function(pre,cur,index,arr){ return res.push(fn.call(thisValue,cur,index,arr)); },[])…

【复旦邱锡鹏教授《神经网络与深度学习公开课》笔记】

卷积经常用在信号处理中&#xff0c;用于计算信号的延迟累积。假设一个信号发射器每个时刻 t t t产生一个信号 x t x_t xt​&#xff0c;其信息的衰减率为 w k w_k wk​&#xff0c;即在 k − 1 k-1 k−1个时间步长后&#xff0c;信息为原来的 w k w_k wk​倍&#xff0c;时刻 …

PMBOK® 第六版 指导与管理项目工作

目录 读后感—PMBOK第六版 目录 我们都不情愿去做重复的工作&#xff0c;也不期望只得到一个计划&#xff0c;而具体的工作任务却笼统模糊&#xff0c;需要在做的过程中一边摸索。如此一来&#xff0c;对于熟悉的事情会因反复而影响心态&#xff0c;对于不熟悉的事情则由于痛苦…

在SQL中使用explode函数展开数组的详细指南

目录 简介示例1&#xff1a;简单数组展开示例2&#xff1a;展开嵌套数组示例3&#xff1a;与其他函数结合使用处理结构体数组示例&#xff1a;展开包含结构体的数组示例2&#xff1a;展开嵌套结构体数组 总结 简介 在处理SQL中的数组数据时&#xff0c;explode函数非常有用。它…

pytorch十大核心操作

PyTorch的十大核心操作涵盖了张量创建、数据转换、操作变换等多个方面。以下是结合参考文章信息整理出的PyTorch十大核心操作的概述&#xff1a; 张量创建&#xff1a; 从Python列表或NumPy数组创建张量。使用特定值创建张量&#xff0c;如全零、全一、指定范围、均匀分布、正…

AI与区块链的融合:Web3时代下的新应用探索

本文来源香港Web3媒体Techub News AI与区块链&#xff1a;Web3时代的新机遇 在香港这座金融与科技交汇的繁荣都市&#xff0c;AI与区块链的结合已经成为Web3时代的重要议题&#xff0c;为行业发展带来了新的可能性和机遇。越来越多的开发者正在积极探索这一领域的融合&#xff…

FlinkCDC 3.1.0 与 Flink 1.18.0 安装及使用 Mysql To Doris 整库同步,使用 pipepline连接器

cd flink-cdc-3.1.0 bin/flink-cdc.sh 会用到 linux的系统环境变量&#xff08;vim /etc/profile配置&#xff09;&#xff0c;使用环境变量 FLINK_HOME flinkcdc & flink 安装及使用&#xff1a; 1、flink-cdc-3.1.0/lib/ 内容如下&#xff1a; 2、flink-cdc-3.1.0/mysql…

win10免安装配置MySQL8.4.0

注&#xff1a;此教程基于win10 22H2 版本 1、下载最新版本MySQL压缩包 下载链接&#xff1a;MySQL官网下载地址 点击第二行的 ZIP Archive 后面的Download&#xff08;当前时间2024-06-19最新版本是8.4.0&#xff09; 2、解压并添加配置文件 下载完毕后&#xff0c;解压缩…

Ncorr使用过程的问题解答

问题系列 文章目录 问题系列前言一、如何更改单位&#xff1f;情景&#xff1a;DIC Analysis 二、拉格兰日和欧拉绘图的区别直观 三、控制图像中的显示条上下界限问题展示&#xff1a;解决方案&#xff1a; 更新动态 前言 主要用于记录使用过程中出现的相关问题。 一、如何更改…

k8s中 docker和containerd 镜像相互导入导出

containerd镜像导出并导入docker 1 查看containerd 本地镜像列表 crictl images 2 containerd 导出本地镜像到当前目录下&#xff08;注意&#xff1a; 导出导入需要指定镜像平台类型 --platform&#xff09; ctr -n k8s.io images export nacos-server-24-06-30-13-02-…

【尚庭公寓SpringBoot + Vue 项目实战】移动端登录管理(二十)

【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理&#xff08;二十&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端登录管理&#xff08;二十&#xff09;1、登录业务2、接口开发2.1、获取短信验证码2.2、登录和注册接口2.3、查询登录用户的个人信息 1、…