【问题标题】:Using gp_segment_id as the partition column to get data from greenplum in parallel使用 gp_segment_id 作为分区列从 greenplum 中并行获取数据
【发布时间】:2023-03-14 20:05:01
【问题描述】:

我可以使用多个以 gp_segment_id 为条件的并行查询从 greenplum 表中并行选择数据吗? 这种方法有什么缺点?我会在结果的一致性方面遇到任何问题吗?

【问题讨论】:

    标签: greenplum


    【解决方案1】:

    是的。 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,其中条件等只是确保并行查询组合不会导致资源倾斜。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 2015-06-30
      • 1970-01-01
      相关资源
      最近更新 更多