#greenplum
Вопрос:
Могу ли я использовать несколько параллельных запросов с условием по gp_segment_id для параллельного выбора данных из таблицы 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 в соединениях, где условия и т.д. Просто убедитесь, что комбинация параллельных запросов не вызывает перекос ресурсов.