Greenplum - внешние столы
У меня есть набор файлов с разделителями табуляции, расположенных на сервере, и я создал таблицу метаданных и внешнюю таблицу с тем же макетом, что и таблица метаданных.
Я хотел знать, когда я запускаю скрипт внешней таблицы в PgAdmin 3, должен ли он загружать во внешнюю таблицу данные из файлов (файлы с разделителями табуляции) на сервере?
Я полагаю, что так и должно быть, но когда я запускаю запрос SELECT к таблице ext, он выдает ошибку:
(ERROR: http response code 404 from gpfdist)
Как решить эту проблему?
2 ответа
Без экземпляров gpfdist, запущенных на моих серверах Redhat Greenplum, я видел эту ошибку в наших журналах при попытке использовать внешние таблицы: ОШИБКА: не удалось установить соединение с gpfdist для gpfdist://172.xxx.xxx.xxx:8081/app/xxx/prod/data/file.2015-01-21-08-37-50-0001.txt. действующий URL: http://172.xxx.xxx.xxx:8081/app/xxx/prod/data/file.2015-01-21-08-37-50-0001.txt. код ошибки = 111 (соединение отказано) (seg2 slice1 hostnamexxxx:40002 pid=17585)
Я запустил gpfdist в фоновом режиме на портах 8080 и 8081 (не уверен, почему оба), и я получил другую ошибку: ОШИБКА: код ответа http 404 от gpfdist (gpfdist://172.xxx.xxx.xxx:8081/app/xxx/prod/data/file.2015-01-21-08-37-50-0001.txt): файл HTTP/1.0 404 не найден (url.c:343) (seg0 slice1 hostnamexxx:40000 pid=62012) (cdbdisp.c:1525)
Я обнаружил, что должен был запустить gpfdist из каталога / (даже попытка с -d / app / xxx / prod / data не сработала, и при этом не запустил gpfdist из этого каталога), используя эти команды:
nohup / usr / local / greenplum / greenplum-db / bin / gpfdist -p 8081 -l /home/xxxmgr/8081.log &
nohup / usr / local / greenplum / greenplum-db / bin / gpfdist -p 8080 -l /home/xxxmgr/8080.log &
Сейчас работает нормально. Удачи!
Вы указали Host:Port с текстовым (входным) именем файла в определении вашей внешней таблицы?
Вы запустили свой gpfdist в той же папке, где находится ваш текстовый файл?
Проверьте, включен ли ваш gpfdist онлайн.
Опубликуйте скрипт вашей внешней таблицы / скрипт таблицы метаданных.