Я тоже боролся с этим, вот мое решение. Обратите внимание: я не специалист в Linux, поэтому может быть одно решение для линейки.
Так что я хотел добавить столбец имени перед моими записями.
Это может быть сделано в СЭД, я создал файл transform.sh, со следующим содержанием:
#/bin/sh
filename=$1
#echo $filename >> transform.txt
sed -e "s|^|$filename\v|" $filename
Пожалуйста, обратите внимание, что я использовал вертикальную вкладку в качестве разделителя, \ v. Также в имени файла вы могли бы/следовательно использовать | , Чтобы иметь значение $ filename, мы должны использовать double quites для sed.
Проверьте это, он выглядит хорошо.
./transform.sh countersamples-2016-03-02--11-51-10.csv
countersamples-2016-03-02--11-51-10.csv
timestamp
machine
category
instance
name
value
countersamples-2016-03-02--11-51-10.csv
2016-03-02 11:51:10.064
DESKTOP-4PLQKVL
Memory
% Committed Bytes In Use
74.8485488891602
Эта часть сделана, продолжит работу с gpfdist. Нам нужен YAML файл, который может быть передан в gpfdist, я назвал эту transform.yaml Содержание:
---
VERSION: 1.0.0.1
TRANSFORMATIONS:
add_filename:
TYPE: input
CONTENT: data
COMMAND: /bin/bash transform.sh %filename%
Обратите внимание, что мы имеем значение% имя_файла% здесь. Кажется, что gpfdist предварительно фильтрует файлы, которые нужно обрабатывать, и передает их 1 к 1 нашему преобразованию.
Позволяет стрелять вверх gpfdist:
gpfdist -c transform.yaml -v
Теперь идут в Greenplum и создать внешнюю таблицу, такие как:
CREATE READABLE EXTERNAL TABLE "ext_transform"
(
"filename" text,
"timestamp" timestamp without time zone ,
"machine" text ,
"category" text ,
"instance" text ,
"name" text ,
"value" double precision
)
LOCATION ('gpfdist://localhost:8080/*/countersamples*.csv#transform=add_filename')
FORMAT 'TEXT'
(HEADER DELIMITER '\013' NULL AS '\\N' ESCAPE AS '\\')
И когда мы выбираем из него данные:
select * from "ext_transform";
Мы видим: 
Я создал 2 папки, чтобы увидеть, как они реагируют, если файлы не находятся в той же папке, что и преобразование. Таким образом, я могу различать два файла, даже если их данные идентичны.
Спасибо, у меня есть добавленное имя файла перед обработкой, только проблема огромного набора файлов, поступающих из источников, и редактирование этих файлов занимает много времени. –
Вам не нужно делать это вручную - используя преобразование gpfdist, вы можете сделать эту работу на полет, т.е. вам не нужно редактировать файлы. Вот как это может работать: https://www.pivotalguru.com/?p=871 – 0x0FFF
Вот еще одна ссылка с описанием: http://gpdb.docs.pivotal.io/4340/admin_guide/load/topics/ г-запись заместитель gpfdist-конфигурация.html – 0x0FFF