定义基于文件的可写外部表

定义基于文件的可写外部表

使用Greenplum并行文件服务器程序gpfdist或者Hadoop分布式文件系统接口gphdfs输出数据到文件的可写外部表。

使用CREATE WRITABLE EXTERNAL TABLE命令定义外部表并且指定输出文件的位置和格式。为配合外部表使用,设置gpfdistgphdfs的指导分别可见使用Greenplum的并行文件服务器(gpfdist)使用Hadoop分布式文件系统(HDFS)表

  • 对于一个使用gpfdist协议的可写外部表,Greenplum的Segment把它们的数据发送到gpfdist,后者会把数据写到指定的文件中。gpfdist必须运行在一个Greenplum的Segment能够通过网络访问的主机上。gpfdist指向一个输出主机上的位置并且把从Greenplum的Segment接收的数据写到该文件中。要把输出数据划分到多个文件之间,在用户的可写外部表定义中列出多个gpfdist URI。
  • 一个可写外部Web表把数据当作数据流发送给一个应用。例如,从Greenplum数据库卸载数据并且把它发送到一个连接到另一数据的应用或者把该数据装载到其他地方的ETL工具。可写外部Web表使用EXECUTE子句来指定一个shell命令、脚本或者应用运行在Segment主机上并且接受一个输入数据流。更多有关在可写外部表定义中使用EXECUTE的信息请见定义基于命令的可写外部Web表

用户可以有选择地为用户的可写外部表声明一个分布策略。默认情况下,可写外部表使用一种随机分布策略。如果从中导出数据的源表具有一种哈希分布策略,为可写外部表定义相同的分布键列可以提高卸载性能,因为这消除了在Interconnect之上移动行的需求。如果用户从一个特定表卸载数据,用户可以使用LIKE子句从源表复制列定义和分布策略。