【发布时间】:2023-03-14 20:05:01
【问题描述】:
我可以使用多个以 gp_segment_id 为条件的并行查询从 greenplum 表中并行选择数据吗? 这种方法有什么缺点?我会在结果的一致性方面遇到任何问题吗?
【问题讨论】:
标签: greenplum
我可以使用多个以 gp_segment_id 为条件的并行查询从 greenplum 表中并行选择数据吗? 这种方法有什么缺点?我会在结果的一致性方面遇到任何问题吗?
【问题讨论】:
标签: greenplum
是的。 gp_segment_id 将表现得像普通列。唯一的问题是它被隐藏了。
gpadmin=# select gp_segment_id,* from test1;
gp_segment_id | a
---------------+---
20 | 3
39 | 2
34 | 1
(3 rows)
gpadmin=# select gp_segment_id,* from test2;
gp_segment_id | a
---------------+---
20 | 3
25 | 4
39 | 2
34 | 1
(4 rows)
gpadmin=# select * from test1 p join test2 q on p.gp_segment_id=q.gp_segment_id;
a | a
---+---
2 | 2
1 | 1
3 | 3
(3 rows)
gpadmin=#
您可以在连接中使用 gp_segment_id,其中条件等只是确保并行查询组合不会导致资源倾斜。
【讨论】: