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

标签:
哲想软件办公解决方案 |
分类: 软件 |
将数据集合分片到集群时,跨驻留在不同机器上的数据运行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
使用SmartJoins和SatelliteCollections增强分布式JOIN功能
SatelliteCollections是ArangoDB中用于加速分布式JOIN操作的另一个功能。您可以定义要分片的集合,并且可以将其他较小的集合复制到每台机器上,以允许在分片和复制的集合之间进行本地连接操作。
但是SatelliteCollections也可以与SmartJoins结合使用,以允许跨两个分片集合和多个复制卫星的增强连接操作。
想象一下,我们将在user上面概述的产品购买示例中添加一个集合。与or集合相比,此user集合通常要小得多,因此将是复制到每个DB服务器的良好候选者。在这种情况下,由于SmartJoins(和集合)和SatelliteCollections(集合)的组合,可以在本地执行所有三个集合的连接。
公司名称:北京哲想软件有限公司
北京哲想软件官方网站:cogitosoft.com
北京哲想软件微信公众平台账号:cogitosoftware
北京哲想软件微博:哲想软件
北京哲想软件邮箱:sales@ cogitosoft.com
销售(俞先生)联系方式: 86(010)68421378
微信:18610247936