gpreload
重新装载Greenplum数据库表数据,根据指定的列对数据进行排序。
概要
gpreload -d database [-p port] {-t | --table-file} path_to_file [-a]
gpreload -h
gpreload --version
描述
gpreload工具重新装载列数据被排序过的表数据。对于使用表存储选项 appendoptimized=TRUE并启用压缩创建的表,使用排序数据重新装载数据 可以改善表压缩。用户在一个文本文件中指定要重新装载的表要排序的表列列表。
当列中的数据的不同值与行总数相比来说相对较小时,压缩可以通过对数据进行排序来改进。
对于正在重新装载的表,要排序的列顺序可能会影响压缩。具有最少不同值的列应该首先列出。 例如,列出州和城市一般会获得比列出城市和州更好的压缩。
public.cust_table: state, city
public.cust_table: city, state
有关gpreload使用的文件格式的信息,请参阅--table-file选项。
注解
为了提高重载性能,在重载数据之前,应该删除正在重载的表上的索引。
重新装载表数据后运行ANALYZE命令可能会因为重新装载 数据的数据分布发生更改而查询性能。
对所有的表,该工具都会将数据复制到临时表,然后将实际表清空,再从临时表按照指定顺序插入到实际表。 每个表的重载操作都在一个单一的事务中处理。
对于分区表来说,可以单独重载子分区的数据。但是无论如何,数据都会从根分区表插入,这会在整个表上产生 ROW EXCLUSIVE锁。
选项
-a(不提示)
可选。如果指定,则gpreload工具不会提示用户进行确认。
-d database
包含要重新装载的表的数据库。gpreload工具以运行该工具的用户的身份连接到数据库。
-p port
Greenplum数据库的Master端口。如果未指定,则使用PGPORT环境变量的值。 如果该值不可用,则返回错误。
{-t | —table-file } path_to_file
包含要重新装载的方案限定的表名列表的文件位置和名称,该文件中还有要从Greenplum数据库重新排序的列名。 仅支持用户定义的表。视图或系统目录表不受支持。
如果在文件中列出的表上定义有索引,gpreload会提示继续。
每一行都指定一个表名和要排序的列的列表。这是文件中每一行的格式:
schema.table_name: column [desc] [, column2 [desc] ... ]
表名后跟一个冒号(:),然后至少一个列名。如果指定多个列,请使用逗号分隔列名称。列按升序排序。 在列名后面指定关键字desc以降序对列进行排序。
通配符不受支持。
如果文件中有错误,gpreload会报告第一个错误并退出。
以下例子展示了重载三个表:
public.clients: region, state, rep_id desc
public.merchants: region, state
test.lineitem: group, assy, whse
在第一个表public.clients中,rep_id列中的数据 被按照降序排序。其他列中的数据被按照升序排序。
--version(显示工具版本)
列出工具版本。
-?(帮助)
提供在线帮助。
示例
此示例命令将重新装载文件data-tables.txt中列出的数据库 mytest中的表。
gpreload -d mytest --table-file data-tables.txt
另见
Greenplum数据库参考指南中的CREATE TABLE。