如何使用解压缩来分隔压缩的固定长度文件

时间:2014-11-19 16:07:30

标签: gzip delimiter greenplum fixed-length-record

我正在处理压缩(gzip)固定长度的平面文件,然后我需要将其转换为分隔的平面文件,以便将其提供给gpload。我被告知可以分割文件而无需解压缩,并将其直接提供给gpload,因为它可以处理压缩文件。

有人知道在.gz格式下分隔文件的方法吗?

1 个答案:

答案 0 :(得分:0)

在没有解压缩的情况下,无法分隔gzip压缩数据。但是你不需要分隔它,你只需将它作为固定宽度的数据类型加载,它就可以通过gpfdist动态解压缩。请参阅"导入和导出固定宽度数据"管理员指南中的章节:http://gpdb.docs.pivotal.io/4330/admin_guide/load.html

以下是一个例子:

[gpadmin@localhost ~]$ gunzip -c testfile.txt.gz 
Bob                 Jones                         27  
Steve               Balmer                        50  

[gpadmin@localhost ~]$ gpfdist -d ~ -p 8080 &
[1] 41525
Serving HTTP on port 8080, directory /home/gpadmin

[gpadmin@localhost ~]$ psql -c "
>     CREATE READABLE EXTERNAL TABLE students (
>         name    varchar(20),
>         surname varchar(30),
>         age int)
>     LOCATION ('gpfdist://127.0.0.1:8080/testfile.txt.gz')
>     FORMAT 'CUSTOM' (formatter=fixedwidth_in, 
>              name='20', surname='30', age='4');
>     "
CREATE EXTERNAL TABLE

[gpadmin@localhost ~]$ psql -c "select * from students;"
  name | surname | age 
-------+---------+-----
 Bob   | Jones   |  27
 Steve | Balmer  |  50
(2 rows)