IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 图数据库Nebula在推荐中的应用 -> 正文阅读

[大数据]图数据库Nebula在推荐中的应用

1. 背景

运维调研图数据库差不多有半年多了,试用了Neo4j和Nebula,Nebula因其免费、开源的分布式支持成为了最终的图数据库选型确定的方案。在测试环境积累了一定的运维经验后,需要应用在真实的业务场景中。搜索推荐要引入个性化推荐(在此之前主要基于Query搜索词扩展推荐),离线算法召回结果需要一个能够支撑亿级数据规模的存储引擎,之前的首页个性化推荐召回存储方案经历了HBase -> Cassandra的变迁,但目前看来,Cassandra的稳定性和数据读取性能并不是太如人意,因此调研通过Nebula存储用户离线个性化召回集

2. 数据建模

  • 实体
    • 用户 user
    • 商品 product
    • 类目 taxcate
    • 搜索词 query
  • 关系
    • 推荐 recommend
    • 商品类目 product_taxcate

“商品类目”作为一种关系可能会让人感到不解,之所以这样设计主要考虑是类目不仅可以和商品关联,还可以跟搜索词、用户关联,因此类目应该作为一个单独的实体类别,通过关系和其他实体进行关联。另外因为需要区分商品的召回来源,因此recommend添加了recall_type的属性:
在这里插入图片描述

3. 数据导入

采用官方推荐的nebula-spark-connector进行导入,但目前发现有一个问题,数据量在亿的时候,很容易就把机器16G的内存吃死了,storaged进程挂掉,其中的关键问题在于:为何内存占用会不断增加?nebula的compact机制是怎样的?这些问题还有待解决,主要是运维那边在跟

4. 结果展示

![在这里插入图片描述](https://img-blog.csdnimg.cn/ee4f2f6f807843d3865e2429e8887157.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57u_5qGC5ZyG,size_20,color_FFFFFF,t_70,g_se,x_16

5. 在线应用

主要是根据user_id查询个性化召回商品集合,查询语句如下:

go from "某个user_id" over recommend yield recommend._dst as pid, recommend.rank as rank, recommend.recall_type as recall_type  |
go from $-.pid over product_taxcate yield $-.pid as pid, $-.recall_type as recall_type, $-.rank as rank, product_taxcate._dst as taxcate |group by $-.pid, $-.recall_type, $-.rank yield $-.pid as product_id, $-.recall_type as recall_type, $-.rank as rank, collect($-.taxcate) as tax_categories |
order by $-.rank desc

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 15:51:25  更:2021-09-20 15:52:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:50:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码