CN109800233A - 一种大数据融合搜索方法 - Google Patents
一种大数据融合搜索方法 Download PDFInfo
- Publication number
- CN109800233A CN109800233A CN201910066917.4A CN201910066917A CN109800233A CN 109800233 A CN109800233 A CN 109800233A CN 201910066917 A CN201910066917 A CN 201910066917A CN 109800233 A CN109800233 A CN 109800233A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- layer
- application
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大数据融合搜索方法,包括以下步骤:构建搜索引擎系统;应用层的应用程序APP通过Socket与数据访问层的解析器和数据服务组件建立TCP/IP连接,数据访问层在收到应用层的应用程序APP的建库请求后,解析器按照协议解析收到的报文,确定请求类型并根据请求参数构建相应数据库的查询语句,然后分别通过连接控制器进行建库操作,随后按照已经建立好的连接来发送请求,数据服务组件在得请求结果后进行结果的汇聚,最后将汇聚的结果返回给应用层的应用程序APP。与现有技术相比,本发明通过数据访问层统一和数据库进行连接管理和数据交互,给应用层的应用程序APP提供统一的访问接口,以最优的方式定制数据库解决方案,满足上层应用的各类数据需求。
Description
技术领域
本发明涉及互联网搜索领域,特别是一种大数据融合搜索方法。
背景技术
传统的关系型数据库经过多年的发展已经非常成熟了,是存储管理结构化数据的有效工具,而在此之上形成的标准接口:结构化查询语言SQL可以方便的在一个表以及多个表之间做非常复杂的数据查询。并且关系型数据库对事务的支持使得对于安全性能很高的数据访问要求得以实现。
而随着互联网的发展,数据体量越来越大,传统的关系型数据库已经不适用这种巨大存储和计算要求,各种大数据存储数据库应运而生,主要有列式数据库、键值数据库和图数据库几种。
列式数据库以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。列式数据库根据列数据的特点和查询的要求选用最佳的算法对数据进行排序和压缩,这就极大地降低磁盘I/O消耗。列式数据库只读取需要的列,支持向量运算,能够获取更好的扫描性能。列式数据库更适用于OLAP-(如数据仓库)这样在海量数据((可能达到terabyte规模))中进行有限复杂查询的场景。
键值数据库就像在传统语言中使用的哈希表。你可以通过key来添加、查询或者删除数据,鉴于使用主键访问,所以会获得不错的性能及扩展性。键值数据库查找速度快,数据无结构化,通常只被当作字符串或者二进制数据。适用储存用户信息,比如会话、配置文件、参数、购物车等等。这些信息一般都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。
目前,传统的关系型数据库多为行数据库,行数据库在执行查询时,需要把表的所有列都从磁盘中读到内存中,然后再进行过滤、关联、分组等操作。对OLAP来说,通常需要在近百个列的表中读取几个列,在行式数据库中会非常浪费I/O。同时,传统数据库采用共享磁盘纵向扩展架构,因为服务器硬件的纵向扩展能力限制,计算能力的扩展也非常有限。关系型数据库的典型实现主要被调整用于执行规模小而读写频繁,或者大批量极少写访问的事务。
列式数据库从一开始就是面向大数据环境下数据仓库的数据分析而产生,它跟行式数据库相比,有一些缺点,首先列式数据库不适合一次读取多列的情况,随着读取的列数量的增多,性能会线性下降,特别对于全字段情形的查询,效率很低。列式数据库也不适合随机更新操作,每次随机更新操作都会触发解压缩和重建索引的操作,相当耗时。列式数据库也不适合频繁的小批量的插入操作,会产生很多的碎片文件,极大的降低效率。
键值数据库在需要储存数据之间的关系则不适用,因为在Key-Value数据库中不能通过两个或以上的键来关联数据。另外键值数据库只能通过键查询,而不能通过值来查询,Key-Value数据库中根本没有通过值查询的途径。对键值数据库多维度灵活组合的查询,就会使点查变为全表扫描,使性能急剧下降。有的场景下,这时可以通过加入二级索引来缓解该问题,但这又带来了二级索引的维护和同步等管理问题。
面对日益复杂是数据库需求,特别是大数据相关的数据库需求,单一数据库很难满足,必须根据实际需求进行选型,但面对多个不同类型的数据时,上层应用的开发人员必须应对各类数据库访问API的差异性和数据类型等复杂性,还需要保证返回结果的一致性,甚至还必须考虑同一数据库不同版本的差异,难以实现各类数据库的无缝结合,学习成本、开发和维护高,扩展性差。
发明内容
本发明的目的是要解决现有技术中存在的不足,提供一种大数据融合搜索方法。
为达到上述目的,本发明是按照以下技术方案实施的:
一种大数据融合搜索方法,包括以下步骤:
1)构建搜索引擎系统,所述搜索引擎系统包括数据层、数据访问层和应用层,应用层包括应用程序APP,所述数据层包括:关系数据库、列式数据库和键值数据库;所述关系数据负责实时数据的插入,数据量设定在百万条,当数据量达到百万条后导入到列式数据库,并清空关系数据库;所述列式数据库负责存储关系数据库导入的数据;所述键值数据库用于存储索引对应的全字段值;所述数据访问层包括:解析器、连接控制器和数据服务组件;所述连接控制器负责与关系数据库、列式数据库和键值数据库通信,解析器、连接控制器和数据服务组件对外提供统一的访问接口;
2)应用层的应用程序APP通过Socket与数据访问层的解析器和数据服务组件建立TCP/IP连接,数据访问层在收到应用层的应用程序APP的建库请求后,解析器按照协议解析收到的报文,确定请求类型并根据请求参数构建相应数据库的查询语句,然后分别通过连接控制器进行建库操作,随后按照已经建立好的连接来发送请求,数据服务组件在得请求结果后进行结果的汇聚,最后将汇聚的结果返回给应用层的应用程序APP。
进一步,所述数据访问层对外统一接口包括表操作接口、插入接口、删除接口、更新接口、查询接口、表结构信息接口和字段信息接口。
进一步,所述键值数据库的索引形式为:原int64存储的index,除以65536后得到索引编号,余数由int16存储,同样编号的存储为一个chunk。
进一步,所述步骤2)中,连接控制器在执行建库操作时,当某一数据库建库失败后,其他相关的库都会进行回退操作;在执行删库操作时,当某一数据库删库失败后,会触发删库定时器,定时尝试执行删库操作;在执行数据插入操作时,当某一数据库插入失败后,数据访问层会删除其它想关库上刚插入的数据;在执行数据删除和更新操作时,当某一数据库执行操作失败后,会触发定时器,定时执行删除或更新操作。
进一步,所述步骤2)中,在应用层的应用程序APP启动时,当某一数据库的连接建立失败时,数据服务组件会记录日志并退出;每次执行操作时,都会检查与相关数据库的连接,当失去与某一数据库的连接时,会触发重连定时器,并记录日志,此时,与这一数据库相关的操作都会直接返回错误。
与现有技术相比,本发明通过数据访问层统一和数据库进行连接管理和数据交互,给应用层的应用程序APP提供统一的访问接口,以最优的方式定制数据库解决方案,满足上层应用的各类数据需求。
附图说明
图1为本发明的网络结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步的详细说明。此处所描述的具体实施例仅用于解释本发明,并不用于限定发明。
如图1所示,本实施例的一种大数据融合搜索方法,包括以下步骤:
1)构建搜索引擎系统,所述搜索引擎系统包括数据层、数据访问层和应用层,应用层包括应用程序APP,所述数据层包括:关系数据库、列式数据库和键值数据库;所述关系数据负责实时数据的插入,数据量设定在百万条,当数据量达到百万条后导入到列式数据库,并清空关系数据库;所述列式数据库负责存储关系数据库导入的数据,提供几种分析查询的方式:1.基于全部数据做汇总统计分析;2.做点查询,比如知道需要查哪辆车,直接进行查该车的数据;3.处于中间的,既要过滤也要扫描,以及做统计计算和关联分析等,即OLAP分析。4.条件过滤,比如根据车颜色、车型等条件过滤出符合条件的索引;所述键值数据库用于存储索引对应的全字段值,键值数据库的索引形式为:原int64存储的index,除以65536后得到索引编号,余数由int16存储,同样编号的存储为一个chunk,键值数据库用于为上层服务提供按索引检索字段的功能;所述数据访问层包括:解析器、连接控制器和数据服务组件;所述连接控制器负责与关系数据库、列式数据库和键值数据库通信,解析器、连接控制器和数据服务组件对外提供统一的访问接口;
2)应用层的应用程序APP通过Socket与数据访问层的解析器和数据服务组件建立TCP/IP连接,数据访问层在收到应用层的应用程序APP的建库请求后,解析器按照协议解析收到的报文,确定请求类型并根据请求参数构建相应数据库的查询语句,然后分别通过连接控制器进行建库操作,随后按照已经建立好的连接来发送请求,数据服务组件在得请求结果后进行结果的汇聚,最后将汇聚的结果返回给应用层的应用程序APP。
连接控制器在执行建库操作时,当某一数据库建库失败后,其他相关的库都会进行回退操作;在执行删库操作时,当某一数据库删库失败后,会触发删库定时器,定时尝试执行删库操作;在执行数据插入操作时,当某一数据库插入失败后,数据访问层会删除其它想关库上刚插入的数据;在执行数据删除和更新操作时,当某一数据库执行操作失败后,会触发定时器,定时执行删除或更新操作。
在应用层的应用程序APP启动时,当某一数据库的连接建立失败时,数据服务组件会记录日志并退出;每次执行操作时,都会检查与相关数据库的连接,当失去与某一数据库的连接时,会触发重连定时器,并记录日志,此时,与这一数据库相关的操作都会直接返回错误。
本发明的技术方案不限于上述具体实施例的限制,凡是根据本发明的技术方案做出的技术变形,均落入本发明的保护范围之内。
Claims (5)
1.一种大数据融合搜索方法,其特征在于,包括以下步骤:
1)构建搜索引擎系统,所述搜索引擎系统包括数据层、数据访问层和应用层,应用层包括应用程序APP,所述数据层包括:关系数据库、列式数据库和键值数据库;所述关系数据负责实时数据的插入,数据量设定在百万条,当数据量达到百万条后导入到列式数据库,并清空关系数据库;所述列式数据库负责存储关系数据库导入的数据;所述键值数据库用于存储索引对应的全字段值;所述数据访问层包括:解析器、连接控制器和数据服务组件;所述连接控制器负责与关系数据库、列式数据库和键值数据库通信,解析器、连接控制器和数据服务组件对外提供统一的访问接口;
2)应用层的应用程序APP通过Socket与数据访问层的解析器和数据服务组件建立TCP/IP连接,数据访问层在收到应用层的应用程序APP的建库请求后,解析器按照协议解析收到的报文,确定请求类型并根据请求参数构建相应数据库的查询语句,然后分别通过连接控制器进行建库操作,随后按照已经建立好的连接来发送请求,数据服务组件在得请求结果后进行结果的汇聚,最后将汇聚的结果返回给应用层的应用程序APP。
2.根据权利要求1所述的大数据融合搜索方法,其特征在于:所述数据访问层对外统一接口包括表操作接口、插入接口、删除接口、更新接口、查询接口、表结构信息接口和字段信息接口。
3.根据权利要求1所述的大数据融合搜索方法,其特征在于:所述键值数据库的索引形式为:原int64存储的index,除以65536后得到索引编号,余数由int16存储,同样编号的存储为一个chunk。
4.根据权利要求3所述的大数据融合搜索方法,其特征在于:所述步骤2)中,连接控制器在执行建库操作时,当某一数据库建库失败后,其他相关的库都会进行回退操作;在执行删库操作时,当某一数据库删库失败后,会触发删库定时器,定时尝试执行删库操作;在执行数据插入操作时,当某一数据库插入失败后,数据访问层会删除其它想关库上刚插入的数据;在执行数据删除和更新操作时,当某一数据库执行操作失败后,会触发定时器,定时执行删除或更新操作。
5.根据权利要求1所述的大数据融合搜索方法,其特征在于:所述步骤2)中,在应用层的应用程序APP启动时,当某一数据库的连接建立失败时,数据服务组件会记录日志并退出;每次执行操作时,都会检查与相关数据库的连接,当失去与某一数据库的连接时,会触发重连定时器,并记录日志,此时,与这一数据库相关的操作都会直接返回错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910066917.4A CN109800233A (zh) | 2019-01-24 | 2019-01-24 | 一种大数据融合搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910066917.4A CN109800233A (zh) | 2019-01-24 | 2019-01-24 | 一种大数据融合搜索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109800233A true CN109800233A (zh) | 2019-05-24 |
Family
ID=66560220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910066917.4A Pending CN109800233A (zh) | 2019-01-24 | 2019-01-24 | 一种大数据融合搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800233A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256711A (zh) * | 2020-10-10 | 2021-01-22 | 武汉鼎森世纪科技有限公司 | 大数据同步的一致性验证方法及系统 |
CN113515362A (zh) * | 2021-07-12 | 2021-10-19 | 广州云从洪荒智能科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105408857A (zh) * | 2013-07-29 | 2016-03-16 | 亚马逊科技公司 | 通过针对选择性交织数据位生成用于关系数据库的多列索引 |
CN106503040A (zh) * | 2016-09-20 | 2017-03-15 | 福建天晴数码有限公司 | 适用sql查询方法的kv数据库及其创建方法 |
CN106844546A (zh) * | 2016-12-30 | 2017-06-13 | 江苏号百信息服务有限公司 | 基于Spark集群的多数据源位置信息融合方法及系统 |
-
2019
- 2019-01-24 CN CN201910066917.4A patent/CN109800233A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105408857A (zh) * | 2013-07-29 | 2016-03-16 | 亚马逊科技公司 | 通过针对选择性交织数据位生成用于关系数据库的多列索引 |
CN106503040A (zh) * | 2016-09-20 | 2017-03-15 | 福建天晴数码有限公司 | 适用sql查询方法的kv数据库及其创建方法 |
CN106844546A (zh) * | 2016-12-30 | 2017-06-13 | 江苏号百信息服务有限公司 | 基于Spark集群的多数据源位置信息融合方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256711A (zh) * | 2020-10-10 | 2021-01-22 | 武汉鼎森世纪科技有限公司 | 大数据同步的一致性验证方法及系统 |
CN112256711B (zh) * | 2020-10-10 | 2022-07-05 | 武汉鼎森电子科技有限公司 | 大数据同步的一致性验证方法及系统 |
CN113515362A (zh) * | 2021-07-12 | 2021-10-19 | 广州云从洪荒智能科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN113515362B (zh) * | 2021-07-12 | 2023-10-20 | 广州云从洪荒智能科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567942B2 (en) | Unified table query processing | |
US10534764B2 (en) | Partial merge | |
CN109800222B (zh) | 一种HBase二级索引自适应优化方法和系统 | |
US9740715B2 (en) | Deleting records in a multi-level storage architecture | |
US10725987B2 (en) | Forced ordering of a dictionary storing row identifier values | |
US10162766B2 (en) | Deleting records in a multi-level storage architecture without record locks | |
CN111352925B (zh) | 策略驱动的数据放置和信息生命周期管理 | |
US10296611B2 (en) | Optimized rollover processes to accommodate a change in value identifier bit size and related system reload processes | |
KR102177190B1 (ko) | 유연한 스키마를 사용한 데이터 관리 | |
US20160253382A1 (en) | System and method for improving a query response rate by managing a column-based store in a row-based database | |
US9367585B2 (en) | Data storage and query method | |
WO2020192064A1 (zh) | 一种增量数据一致性实现方法及装置 | |
CN109947796B (zh) | 一种分布式数据库系统查询中间结果集的缓存方法 | |
CN103810219B (zh) | 一种基于行存储数据库的数据处理方法及装置 | |
KR20200056357A (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
CN109800233A (zh) | 一种大数据融合搜索方法 | |
CN114218277A (zh) | 一种关系数据库的高效查询方法和装置 | |
WO2024108638A1 (zh) | 一种基于分片索引的自适应查询方法和装置 | |
CN116483886B (zh) | 结合kv存储引擎和时序存储引擎查询olap的方法 | |
CN113742307B (zh) | 一种基于值日志系统的二级索引的存储和查询方法及系统 | |
CN115718571B (zh) | 一种基于多维度特征的数据管理方法和装置 | |
US20240095246A1 (en) | Data query method and apparatus based on doris, storage medium and device | |
US20230359622A1 (en) | Blocked index join | |
US20240095248A1 (en) | Data transfer in a computer-implemented database from a database extension layer | |
Yan et al. | Big Data Storage Index Mechanism Based on Hierarchical Indexing and Concurrent Updating |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190524 |