加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ArangoDB企业版:SmartJoins使分布式连接操作本地化

(2022-03-23 11:15:28)
标签:

哲想

软件

办公

解决方案

分类: 软件

将数据集合分片到集群时,跨驻留在不同机器上的数据运行JOIN操作可能需要大量数据移动和网络流量,因此性能欠佳。


SmartJoins是一种通过利用智能分片方案对分片集合运行快速分布式JOIN操作的解决方案,该方案允许以最少的网络流量进行JOIN操作。


通过使用SmartJoins,数据处理被带到数据实际驻留的服务器——ArangoDB中的数据库服务器——并在本地并行执行操作。这种方法允许在集群设置中实现接近单个实例的性能。对于数据仓库、报告和商业智能用例,SmartJoins可以成为从庞大数据集中获得洞察力的完美解决方案。


如何从SmartJoins中受益

要利用SmartJoins,企业版用户只需使用相同的分片设置对两个集合进行分片。

通过具有相同数量的分片并使用_key执行连接操作的属性作为分片键,ArangoDBSmartJoins 功能确保JOIN操作所需的数据位于同一台机器上,因此可以在本地执行。


一个很好的例子是产品订单,其中包括例如aproducts和aorders集合。products中的_key属性可用于对products集合进行分片。在orders集合中,productId有一个外键引用集合中的_key属性,products并且通过使用此属性作为orders集合的共享键,可以保证订单和产品被类似地分片,并且可以使用SmartJoins。

https://image.135editor.com/files/users/1050/10507216/202203/24257272-7LbOPJ.jpg


使用SmartJoin方法对集合进行分片后,Coordinator上的查询引擎会自动将传入的查询发送到DBservers上的查询引擎以执行本地查询。当此特定查询需要多个分片时,这会并行发生。来自DBservers的中间结果然后被发送到协调器,最终结果集被放在一起并发送到客户端(参见下面的模式)。


在ArangoDB中使用SmartJoins方法分片的集合。请注意,M和B集合都基于相同的连接键进行分片,因此它们之间的连接可以在本地执行。

https://image.135editor.com/files/users/1050/10507216/202203/24257272-O8kXQM.jpg


使用SmartJoinsSatelliteCollections增强分布式JOIN功能

SatelliteCollections是ArangoDB中用于加速分布式JOIN操作的另一个功能。您可以定义要分片的集合,并且可以将其他较小的集合复制到每台机器上,以允许在分片和复制的集合之间进行本地连接操作。


但是SatelliteCollections也可以与SmartJoins结合使用,以允许跨两个分片集合和多个复制卫星的增强连接操作。


想象一下,我们将在user上面概述的产品购买示例中添加一个集合。与or集合相比,此user集合通常要小得多,因此将是复制到每个DB服务器的良好候选者。在这种情况下,由于SmartJoins(和集合)和SatelliteCollections(集合)的组合,可以在本地执行所有三个集合的连接。


公司名称:北京哲想软件有限公司

北京哲想软件官方网站:cogitosoft.com

北京哲想软件微信公众平台账号:cogitosoftware

北京哲想软件微博:哲想软件

北京哲想软件邮箱:sales@ cogitosoft.com

销售(俞先生)联系方式: 86(010)68421378

微信:18610247936     QQ:368531638

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有