greenplum 数据库是否需要主键?
Is a primary key necessary for greenplum database?
我们知道greenplum是一个MPP数据仓库,我们每天都会从mysql中导入数据,不同来源的主键可能会发生冲突。我正在设计模式,我不确定:
每个 table 都需要主键吗?
从官方文档来看,默认使用主键进行分区,但是我可以指定另一个键进行分区,是否还有其他原因必须设置主键?
不,Greenplum 不需要主键。它实际上会降低您的加载性能,占用存储空间 space,并且可能不会用于任何查询。
分发键通常被设置为 table 的逻辑主键,但没有创建实际的主键。分布键应该是像主键一样的高基数列,这有助于在各个段之间均匀分布数据。
您也可以为分发密钥指定另一个密钥。
最后,我不会将此称为 "partition" 数据的方式,因为分区是 Greenplum 中的另一回事。分区类似于 Oracle 或 SQL 服务器分区,查询优化器根据查询中的条件(其中月份 = 1)消除分区。
我们知道greenplum是一个MPP数据仓库,我们每天都会从mysql中导入数据,不同来源的主键可能会发生冲突。我正在设计模式,我不确定:
每个 table 都需要主键吗?
从官方文档来看,默认使用主键进行分区,但是我可以指定另一个键进行分区,是否还有其他原因必须设置主键?
不,Greenplum 不需要主键。它实际上会降低您的加载性能,占用存储空间 space,并且可能不会用于任何查询。
分发键通常被设置为 table 的逻辑主键,但没有创建实际的主键。分布键应该是像主键一样的高基数列,这有助于在各个段之间均匀分布数据。 您也可以为分发密钥指定另一个密钥。
最后,我不会将此称为 "partition" 数据的方式,因为分区是 Greenplum 中的另一回事。分区类似于 Oracle 或 SQL 服务器分区,查询优化器根据查询中的条件(其中月份 = 1)消除分区。