首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SnappyData配置在一个物理服务器设置中的连接

SnappyData配置在一个物理服务器设置中的连接
EN

Stack Overflow用户
提问于 2017-04-18 17:22:59
回答 2查看 159关注 0票数 1

我正在加入两个表,在一个服务器中配置有64 CPU核和512 1B内存的SnappyData中的大量行(目前为100 m1B),并希望利用同位连接。然而,文档中的描述似乎意味着并置连接发生在每个节点级别。

实际上,我需要的是类似于每桶级配置连接(或分区-连接)的东西,而且我没有充分利用服务器,因为CPU的总利用率在大多数情况下大约是10%或更少。

对于join,我使用Rowstore和SQL语句。我使用单节点安装脚本(snappy-start-all.sh)设置SnappyData,其中包含一个引线、一个服务器和一个定位器,并进行了一些定制,以使用更多的mem和CPU核心:

conf/引线

代码语言:javascript
复制
localhost -locators=localhost:9999 -heap-size=200g -spark.executor.cores=30 -dir=/snappydata/lead1

conf/服务器

代码语言:javascript
复制
localhost -locators=localhost:9999  -heap-size=200g -spark.executor.cores=30 -dir=/snappydata/server1

conf/定位器

代码语言:javascript
复制
localhost -peer-discovery-port=9999 -heap-size=2048m -dir=/snappydata/locator1

我想不出如何解决这个问题,我的问题是:

  1. 搭配连接到底是如何工作的?配置连接是发生在每个节点级别还是在每个桶级,还是发生在之间?除了设置桶号之外,还有什么可以修改的吗?
  2. 在联接列上创建索引除了配置联接之外,还会有帮助吗?
  3. 这种配置适合我的工作负载吗?还是应该设置多个服务器以充分利用资源?
  4. 如果我的设置看起来不错,那么CPU利用率低可能是由于倾斜的散列分区方案,那么我在哪里可以调整分区方案以避免倾斜的分区呢?

对于上述任何问题的任何信息或提示(很抱歉在一个帖子中问了很多问题),我们将不胜感激:)

更新:

两行表的架构如下(列都是Integer类型):

代码语言:javascript
复制
Table_A(key1, key2, value1, value2, value3) 
  USING ROW OPTIONS (partition_by 'key1, key2')

Table_B(key1, key2, value4, value5) 
  USING ROW OPTIONS (partition_by 'key1, key2', colocate_with 'Table_A').

连接结果将包含: Table_C(key1、key2、value1、value2、value3、value4、value5)

key1值可为200不同值,key2 ~2M值为不同值。而且(key1,key2)分布是倾斜的,并不是唯一的--少数(<5%)相当频繁,而大多数不是。

EN

回答 2

Stack Overflow用户

发布于 2017-04-18 18:42:50

只支持涉及两个或多个分区行表(有或没有附加的复制表)的查询,前提是它们同时满足这两种条件:

  1. 查询的WHERE子句对查询中所有分区表的所有分区列都具有相等的条件。
  2. 查询中的所有分区表都是并置的。

这些条件允许SnappyData将连接查询分发到所有承载数据的服务器。查询在每个本地数据存储上并行执行,而不必将表数据从一个成员移动到另一个成员以执行连接。连接在每个数据存储的本地数据集上执行,主查询成员聚合来自每个数据存储的结果以获得结果集。

票数 2
EN

Stack Overflow用户

发布于 2017-04-18 18:54:40

  1. 搭配连接到底是如何工作的?配置连接是发生在每个节点级别还是在每个桶级,还是发生在之间?除了设置桶号之外,还有什么可以修改的吗?

每个节点级别都会出现并置连接。

  1. 在联接列上创建索引除了配置联接之外,还会有帮助吗?

这取决于您的联接查询。

  1. 这种配置适合我的工作负载吗?还是应该设置多个服务器以充分利用资源?

设置多个服务器应该有助于更好地利用资源。

  1. 如果我的设置看起来不错,那么CPU利用率低可能是由于倾斜的散列分区方案,那么我在哪里可以调整分区方案以避免倾斜的分区呢?

您可以从这个指针- 管理/分区-约.开始,您也可以根据数据的性质根据范围、列表或表达式对数据进行分区。通过这些示例了解如何实现这个目标- guide/topics/create-partition-tables/PartitioningExamples.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43478545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档