拓闻 | 万级维度、千亿级数据,看我Eagles实时检索分析引擎

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎大数据时代的来临为众多企业带来了更多的全新的发展机遇。而搜索引擎已经成为大数据领域的一个核心应用,其重要性不言而喻。很多公司在大数据离线统计分析方面已经具备了一定的能力。但是,很多应用场景往往要求在数秒内完成对几亿、几十亿甚至几百上千亿的数据分析,从而达到不影响用户体验的目的。如何能够及时有效的获取分析结果提高工作效率,这是许多分析人员在面对大数据所不得不面临的问题。拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎 实时检索分析引擎Eagles,是DATATOM研发的为大数据检索、分析业务提供一套实时的、多维的、交互式的查询、统计、分析系统,它是DANA智能数据开发者服务中一个核心模块,具有高扩展性、高通用性、高性能的特点, 能够为公司各个产品在大数据的统计分析方面提供完整的解决方案,让万级维度、千亿级数据下的秒级统计分析变为现实。

今天,小拓结合Eagles产品特性,给大家介绍这款产品。

1.易管理性

Eagles自带Web的管理控制台,方便进行远程维护和管理。

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎2. 高扩展性

Eagles拥有非常灵活的扩展性,您只需添加一个个新节点,即可轻松应对更高级别的数据量,可以扩展到上百台服务器,高效处理PB级数据。

数据索引库可以设置任意多分片,分片会在集群节点之间平均的负载, 当集群扩容或缩小的时候,Eagles会自动在节点之间迁移分片,以保证集群的负载平衡。

用户提交查询请求时,请求也会分发到每个涉及的节点,在多个分片中并发查询, Merge操作会选择其中一个负载较轻的分片中进行,此特性在海量数据的时候优势就体现的非常明显。

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎3.高可用性

Eagles拥有非常完善的故障异常处理机制,任何节点故障不影响系统正常使用。因Eagles采用对等节点机制,集群内部自动检测节点的增加、失效和恢复,并重新组织索引。

同时索引库支持设置多副本机制,任一索引分片都在不同的节点上有副本,任意节点故障系统会在毫秒级检测到异常并启动副本复制,不影响应用系统的正常使用。

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎4.多种数据源支持

Eagles通过整合Crab数据收集引擎,能够支持多种数据源的定时收集,如传统ETL工具,网页Spider, 数据库,文件系统,邮件,RabbitMQ消息队列, Log 等数据源,索引可完全自定义索引结构。

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎5.实时数据分析

Eagles提供了丰富的聚合/分类算法,利用其冗长但是强大的Aggregation DSL可以表达出比SQL还要复杂的聚合逻辑, 为数据分析提供了有力的支撑, 目前Eagles支持:

1)域的折叠与融合

2)百分位等级聚合,该功能展示了观测值在某个特定值之下的百分率

3)地理范围聚合,该功能提供了一个覆盖了所有位置值的范围框图

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎  (图:使用Eagles统计热点违停区域)

6.数据地图搜索

Eagles内置Geo字段支持,只要文档中包含空间信息字段,即可使用Eagles搜索API进行空间搜索、距离搜索、范围搜索、空间统计等高级功能。

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎(图:使用Eagles实现巡逻范围预警)

7.Schema-Free

Eagles既可以搜索、也可以保存数据。它提供了一种半结构化、不依赖schema并且基于JSON的模型,你可以直接传入原始的JSON文档,Eagles会自动地检测出你的数据类型,并对文档进行索引。你也可以对schema映射进行定制,以实现特殊的自定义需求,例如对单独的字段或文档进行boost映射,或者是定制全文搜索的分析方式等。

8.多语言分词

Eagles内置了多种语言的分词器,目前内置英文、中文、日文、俄文、法文、拼音分词,不同的分词器有不同的分词算法,用户可以根据自己的需求选择适合的分词器。词典支持自定义,以提升分词的准确率。

9.Query DSL

完整的支持了基于JSON的QueryDSL通用查询框架,QueryDSL是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句。它有几大特点:

1)QueryDSL仅仅是一个通用的查询框架,专注于通过Java API构建类型安全的SQL查询。

2)QueryDSL可以通过一组通用的查询API为用户构建出适合不同类型ORM框架或者是SQL的查询语句,也就是说QueryDSL是基于各种ORM框架以及SQL之上的一个通用的查询框架。

3)借助QueryDSL可以在任何支持的ORM框架或者SQL平台上以一种通用的API方式来构建查询。前QueryDSL支持的平台包括JPA,JDO,SQL,Java Collections,RDF,Lucene,Hibernate Search。

10.兼容SQL

除了QueryDSL 查询语法的支持,Eagles还支持类SQL的查询方式,让熟悉数据库的你轻松上手,目前支持常用语法 Select, Delete, Where, Order By, Group By, And/Or, Like,Count, Sum, Between等。

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎11.RESTFul 跨平台接口

Eagles支持RESTful的API,可以使用JSON通过HTTP调用它的各种功能,包括搜索、分析与监控。此外,它还为Java、PHP、Perl、Python以及Ruby等各种语言提供了原生的客户端类库。

12.与Hadoop兼容和集成

DATATOM将其在数据检索处理上的丰富经验与 Hadoop 开源平台高效整合。Eagles实时搜索引擎与Hadoop无缝集成, MapReduce 的引入大大扩展了系统在数据分析方面的扩展能力; Eagles 机器数据挖掘引擎是基于Hadoop平台进行数据挖掘与分析, Eagles将分片的信息暴露给Hadoop,以此可以实现协同定位。Job的任务会在每个Eagles分片所在的同一台机器上运行, Eagles能够提供近乎实时的响应速度,这极大的改善了Hadoop job的执行速度以及执行的各种开销.。

检索引擎的功能和性能决定了大数据系统的响应能力和可用性,同时很多大数据分析和挖掘操作也是依赖于底层实时查询技术,因此在海量数据规模下,能获得秒级的响应是大数据应用系统的一个关键指标。

拓闻 <wbr>| <wbr>万级维度、千亿级数据,看我Eagles实时检索分析引擎而应对万级维度、千亿级数据,看我EAGLE实时检索分析引擎大显神威吧。






http://blog.sina.com.cn/s/blog_882057360102vxr5.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
协同过滤算法是一种基于用户行为的推荐算法,它利用用户历史行为数据,比如用户听过哪些歌曲,评分等,通过计算用户之间的相似度,从而推荐相似用户喜欢的歌曲。 以下是一个简单的基于协同过滤算法的音乐推荐系统的代码实现,使用Python语言和pandas库: ```python import pandas as pd # 加载数据 ratings_data = pd.read_csv('ratings.csv') music_data = pd.read_csv('music.csv') # 用户-歌曲评分矩阵 ratings_matrix = ratings_data.pivot_table(index='user_id', columns='music_id', values='rating') # 计算用户之间的相似度 similarity_matrix = ratings_matrix.corr(method='pearson') # 推荐相似用户喜欢的歌曲 def recommend_music(user_id): user_ratings = ratings_matrix.loc[user_id].dropna() sim_users = pd.Series() for music_id in user_ratings.index: sim_users = sim_users.append(similarity_matrix[music_id].dropna()) sim_users = sim_users.groupby(sim_users.index).sum() sim_users = sim_users.drop(user_id) sim_users = sim_users.sort_values(ascending=False)[:10] recommend = [] for music_id in ratings_matrix.columns: if music_id in user_ratings.index: continue music_sim = similarity_matrix[music_id].dropna() music_sim = music_sim.reindex(sim_users.index) music_sim = music_sim.dropna() if len(music_sim) == 0: continue predict_rating = (music_sim * user_ratings.reindex(music_sim.index)).sum() / music_sim.sum() recommend.append((music_id, predict_rating)) recommend.sort(key=lambda x: x[1], reverse=True) return recommend[:10] # 示例 recommend_music(1) ``` 其,`ratings.csv`是用户对歌曲的评分数据,格式如下: | user_id | music_id | rating | | ------- | -------- | ------ | | 1 | 1 | 4 | | 1 | 2 | 3 | | 2 | 1 | 5 | | 2 | 3 | 4 | | ... | ... | ... | `music.csv`是歌曲的元数据,格式如下: | music_id | title | artist | genre | | -------- | --------------- | -------------- | ----- | | 1 | Bohemian Rhapsody | Queen | Rock | | 2 | Hotel California | Eagles | Rock | | 3 | Thriller | Michael Jackson | Pop | | ... | ... | ... | ... | 以上代码实现了一个简单的基于协同过滤算法的音乐推荐系统,可以根据用户的历史行为数据推荐相似用户喜欢的歌曲。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值