В Linux у меня есть файлы в удаленной системе, которые слишком велики для моей локальной системы, поэтому я использую ssh для потоковой передачи файлов в локальную систему и использую stticin для копирования Vertica для ввода данных. Проблема в том, что иногда по какой-то причине происходит сбой потоковой передачи, и у меня есть неполные данные, переданные в Vertica.
Для демонстрации я подготовил следующее:
cat ./test.dat | falseCat |
vsql -d SRVVERTICA -c "copy thisTable (a,b,c)
FROM local stdin
delimiter '|'
trailing nullcols
abort on error commit;"
Это пакетирует данные из моего файла данных через мою программу falseCat, которая передает свои данные и всегда возвращает ошибку в Vertica. Трудно сказать, если это именно то, что я вижу. Совсем недавно я получил ошибку от ранее в трубе:
awk: fatal: print to "standard output" failed (Connection reset by peer)
Обратите внимание, что это не проблема Vertica. Это проблема верхнего уровня, которую я пытаюсь уловить в Vertica до того, как она совершится Например, если я получу только 30 миллионов записей, когда я должен получить 50 миллионов, я хочу откатиться до того, как зафиксировать неполные данные. Также было бы «полезно» узнать, получил ли я неполные данные, чего я сейчас не знаю, не изучив журналы.
Хотелось бы, чтобы у меня было место для локальной передачи данных в файл и загрузки файла в Vertica, но я не могу из-за размера данных.
Спасибо за любой вклад.