GreenPlum如何处理多个大型连接和同时工作负载?

时间:2017-11-19 18:15:40

标签: greenplum

我们的产品是从我们的数据库中提取的,它们可以大到300GB +的文件格式。为了实现这一点,我们连接了多个大型表(在某些情况下,表大小接近1TB)。我们不汇总数据期,它是纯粹的提取物。 GreenPlum如何处理这些大型数据集(连接键是3+列键,而不是每个表都有相同的键加入,唯一的通用键是第一个键,如果数据将被分配,那么将会有由于数据本身不平衡,因此存在很多偏差。

2 个答案:

答案 0 :(得分:0)

您应该将可写外部表用于那些类型的大数据提取,因为它可以并行使用gpfdist和写入数据。它会非常快。

https://gpdb.docs.pivotal.io/510/ref_guide/sql_commands/CREATE_EXTERNAL_TABLE.html

此外,您的用例并不能真正表明存在偏差。偏差可能是通过较差的列选择(如gender_code)来存储数据,也可能是处理偏差,您可以按一列或多列来过滤,其中只有少数段具有数据。

答案 1 :(得分:0)

一般来说,Greenplum数据库处理这种负载就好了。查询在段上并行执行。

您的瓶颈可能是从数据库中最终导出 - 如果您使用SQL(或COPY),所有内容都必须通过主服务器传递给客户端。这需要时间,而且很慢。

正如Jon指出的那样,考虑使用外部表,并在查询出来时写出数据。如果可能,还要在查询中避免任何类型的排序操作。这是不必要的,因为数据在外部表文件中未分类到达。