我正在处理压缩(gzip)固定长度的平面文件,然后我需要将其转换为分隔的平面文件,以便将其提供给gpload。我被告知可以分割文件而无需解压缩,并将其直接提供给gpload,因为它可以处理压缩文件。
有人知道在.gz格式下分隔文件的方法吗?
答案 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)