Я пытаюсь загрузить CSV-файл, полученный с SFTP-сервера, в Vertica в качестве новой таблицы. Я настроил процессор GetSFTP
, но я не понимаю, как мне установить соединение с Vertica и выполнить SQL?
Подключение NiFi к Vertica
Ответы (2)
1. Вам необходимо настроить DBCPConnectionPool с вашими JAR-файлами Vertica, например @mattyb.
2 - Создайте промежуточную область, где у вас будет исполняемый файл (скопируйте скрипты).
3 - Создайте шаблон для управления скриптами или загрузками (ReplaceText Processor).
Примечание.
- параметры, которые вы видите здесь, поступают в файл потока от вышестоящих процессоров.
- это многоразовая группа процессов, поэтому есть много других PG, которые будут отправлять свои выходные данные в эту группу.
Пример:
Задача data_feed будет запускать Start Data Feed (этот PG будет содержать свои собственные параметры и значения) - если выполняется без ошибок, переходит к этому шагу, если он терпит неудачу, он переходит к другому многоразовому PG, который обрабатывает ошибки.
ежедневный процесс приема (непрерывная загрузка каждые 5 минут), - PG подготовит файл CSV, переместит его в промежуточный режим, убедится, что все в правильном формате, - если на этом этапе выполняется без ошибок, он не сработает переходит к другому многоразовому PG, который обрабатывает ошибки.
И поэтому многие PG будут использовать этот многоразовый PG для загрузки данных в БД.
PG - сокращение от Process Group
- так выглядит мой
./home/dbadmin/.profile / opt / vertica / bin / vsql -U $ username -w $ password -d analytics -c "copy $ {TableSchema}. $ {TableToLoad} FROM '$ {folder} / *. csv 'разделитель' | ' заключенные в '~' null как '' НАЗВАНИЕ ПОТОКА '$ {TableToLoad} $ {TaskType}' ОТКЛОНЕННЫЕ ДАННЫЕ КАК ТАБЛИЦА $ {TableSchema}. $ {TableToLoad} _Rejects; выберите analysis_statistics ('$ {TableSchema}. $ {TableToLoad}' ); "
-вы можете добавить свой параметр или создать новый один раз
4 - Обновите Attribute Proc, чтобы вы могли назвать исполняемый файл.
5 - процесс Putfile, который разместит скрипт загрузки Vertica на машине.
6 - ExecuteStreamComnand - запускает сценарий оболочки. - журналы аудита и многое другое можно сделать здесь.
Еще лучше - см. прикрепленный шаблон с многоразовым PG, который я использую для загрузки данных в Vertica с NIFI.
http://www.aodba.com/bulk-load-data-vertica-apache-nifi/
Что касается Vertica DBCP, настройка должна выглядеть так:
- где красная отметка - ваш ipaddress: port / dbadmin
Примечание. Этот пул DBCPConnectionPool может быть на уровне проекта (внутри PG) или на уровне NIFI (создать его на главном холсте с помощью меню служб контроллера)
Помимо идеи массового загрузчика от @sKwa, вы также можете создать DBCPConnectionPool с вашими Vertica JAR и процессором PutSQL, который будет выполнять SQL. Если вам нужно преобразовать данные в SQL, вы можете использовать ConvertJSONToSQL, в противном случае используйте PutDatabaseRecord, который по сути является «ConvertXToSQL -> PutSQL» вместе.
ExecuteStreamCommand
, где загрузчик - этоvsql
или любой другой клиент. - person sKwa   schedule 08.01.2018