2014-11-19 2 views
0

Я имею дело со сжатыми (gzip) плоскими файлами с фиксированной длиной, которые затем мне нужно превратить в плоские файлы с разделителями, чтобы я мог его подгружать в gpload. Мне сказали, что можно разграничить файл без необходимости его распаковывать и напрямую передать его в gpload, поскольку он может обрабатывать сжатые файлы.Как разбить сжатый файл с фиксированной длиной с его разжатием

Кто-нибудь знает способ разграничения файла, когда он находится в формате .gz?

ответ

0

Невозможно разграничить сжатые данные gzip, не распаковывая его. Но вам не нужно ограничивать его, вы можете просто загрузить его как тип данных фиксированной ширины, он будет распакован на лету gpfdist. Обратитесь к «Импорт и экспорт равноширокого данных» раздел в руководстве администратора здесь: http://gpdb.docs.pivotal.io/4330/admin_guide/load.html

Вот пример:

[[email protected] ~]$ gunzip -c testfile.txt.gz 
Bob     Jones       27 
Steve    Balmer      50 

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

[[email protected] ~]$ 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 

[[email protected] ~]$ psql -c "select * from students;" 
    name | surname | age 
-------+---------+----- 
Bob | Jones | 27 
Steve | Balmer | 50 
(2 rows) 
Смежные вопросы