对实时推荐引擎来说,关系数据库已过时,图数据库才是王道!

摘要:大数据时代下 , 实时推荐引擎成为个性化广告背后的助力 , 而数据库更是提供了推荐依据 。 本文作者指出 , 在如今这个数据增长速度十分迅猛的环境下 , 关系数据库已经比不上图数据库的高效了 。
作者|NikoKrvavica
译者|弯月责编|郑丽媛
出品|CSDN(ID:CSDNnews)
推荐引擎中的数据增长速度十分快 , 而且会变得非常复杂 。 例如亚马逊等网站每月的用户访问量超过1.97亿次 , 每隔几分钟就有4000件商品被购买 。
对于关系数据库来说 , 存储这些数据并不成问题 , 但查询有用的信息并生成推荐可能成为一个缓慢而痛苦的SQL噩 。
无论何时 , 即便业务模型以某种没有意料到的方式发生变化 , 图数据库也可以轻松处理 , 它具有非常灵活的数据建模 。
由于图数据库的重心是关系 , 因此与关系数据库相比 , 查找图数据库并生成推荐信息会更加容易 , 速度也更快 。 你无需考虑如何编写JOIN语句 , 只需要考虑客户实际想要购买什么 。
对实时推荐引擎来说,关系数据库已过时,图数据库才是王道!
文章图片
数据建模更容易
在关系数据库中 , 数据是通过创建多个表来存储的 , 其中每一列代表实体的一个属性 , 包括唯一的键 , 每个表都可以使用JOIN与数据库中的其他表连接 。 在白板上绘制关系数据模型以及关联的表非常有难度 , 但任何熟悉业务需求的人都可以使用图数据模型 , 即使他们并不精通数据科学 。
对实时推荐引擎来说,关系数据库已过时,图数据库才是王道!】图数据库包含两个主要实体:节点(顶点)和节点之间的关系(边) 。 每个节点的信息都作为属性保存起来 。 举个例子 , 假设数据由产品、用户和评论组成 , 这些都是具有不同标签和属性的节点 , 比如产品包含名称、品牌、尺寸和价格等信息 。 用户查看这些产品 , 并将它们放入购物车、购买、评价或退货 , 这样用户和产品之间就会形成不同类型的关系 。
如果想在零售领域实现一个推荐系统 , 关系型数据库需要定义数据库模式并创建各种表:用户表、商品表、评分表等等 。 表中的每一行都有一个唯一的键 , 该键可作为属性存储在另一个表中 , 以表示两个表之间的连接 。 这里的数据模式绘制成图形 , 大致如下:
对实时推荐引擎来说,关系数据库已过时,图数据库才是王道!
文章图片
这个示例非常简单 , 相较而言现实生活中系统包含的数据量和表远不止这么多 , 理解表之间连接的本质是一项非常艰巨的工作 。 如果模型发生任何变化 , 我们还需要重审模式以及内部的关系 , 然后更新所有表和流程 。
在图数据库中 , 节点之间的交互建模与数据的存储和查询方式一致 , 可以为推荐引擎提供最佳结果 。 图数据库提供了一种比关系数据库更好的方式来表达实体之间的联系 , 因此有利于开发准确的业务模型 。 此外 , 它们还为系统提供了非常必要的灵活性 。
在大多数图数据库中 , 数据库模式不是必需的 , 因此导入数据和更新数据的难度更小 。 节点和关系是在数据存储到数据库时创建的 。
用户创建个人账号时 , 系统会创建一个带有标签USER的节点以及定义特定用户的属性 。 用户可以创建他们销售的产品 , 图模型会更新所有带有PRODUCT标签的节点 。 节点USER和PRODUCT之间通过关系连接:SELLING 。 用户还可以购买产品 , 并对其进行评分 。 这时 , 节点USER和PRODUCT之间就形成了另外两种关系 , 分别为BOUGHT(购买)或RATED(评分) 。 图数据库的模式如下所示: