gpreload

重新装载Greenplum数据库表数据,根据指定的列对数据进行排序。

概要

  1. gpreload -d database [-p port] {-t | --table-file} path_to_file [-a]
  2. gpreload -h
  3. gpreload --version

描述

gpreload工具重新装载列数据被排序过的表数据。对于使用表存储选项APPENDONLY=TRUE并启用压缩创建的表,使用排序数据重新装载数据可以改善表压缩。用户在一个文本文件中指定要重新装载的表要排序的表列列表。

当列中的数据的不同值与行总数相比来说相对较小时,压缩可以通过对数据进行排序来改进。

对于正在重新装载的表,要排序的列顺序可能会影响压缩。具有最少不同值的列应该首先列出。例如,列出州和城市一般会导致比列出城市和州更好的压缩。

  1. public.cust_table: state, city
  2. public.cust_table: city, state

有关gpreload使用的文件格式的信息,请参阅--table-file选项。

注解

为了提高重载性能,在重载数据之前,应该删除正在重载的表上的索引。

重新装载表数据后运行ANALYZE 命令可能会因为重新装载数据的数据分布发生更改而查询性能。

选项

-a (不提示)

可选。如果指定,则gpreload工具不会提示用户进行确认。

-d database

包含要重新装载的表的数据库。gpreload工具以运行该工具的用户的身份连接到数据库。

-p port

Greenplum数据库的Master端口。如果未指定,则使用PGPORT环境变量的值。如果该值不可用,则返回错误。

{-t | —table-file } path_to_file

包含要重新装载的方案限定的表名列表的文件位置和名称,该文件中还有要从Greenplum数据库重新排序的列名。仅支持用户定义的表。视图或系统目录表不受支持。

如果在文件中列出的表上定义有索引,gpreload会提示继续。

每一行都指定一个表名和要排序的列的列表。这是文件中每一行的格式:

  1. schema.table_name: column [desc] [, column2 [desc] ... ]

表名后跟一个冒号(:),然后至少一个列名。如果指定多个列,请使用逗号分隔列名称。列按升序排序。在列名后面指定关键字desc以降序对列进行排序。

通配符不受支持。

如果文件中有错误,gpreload会报告第一个错误并退出。

数据不会被重新装载。以下示例重新装载三个表:

  1. public.clients: region, state, rep_id desc
  2. public.merchants: region, state
  3. test.lineitem: group, assy, whse

在第一个表public.clients中,rep_id列中的数据被按照降序排序。其他列中的数据被按照升序排序。

--version (显示工具版本)

列出工具版本

-? (帮助)

提供在线帮助

示例

此示例命令将重新装载文件data-tables.txt中列出的数据库mytest中的表。

  1. gpreload -d mytest --table-file data-tables.txt

另见

Greenplum数据库参考指南中的CREATE TABLE