Подключение NiFi к Vertica

Я пытаюсь загрузить CSV-файл, полученный с SFTP-сервера, в Vertica в качестве новой таблицы. Я настроил процессор GetSFTP, но я не понимаю, как мне установить соединение с Vertica и выполнить SQL?


person shakedzy    schedule 07.01.2018    source источник
comment
вызвать команду загрузчика через ExecuteStreamCommand, где загрузчик - это vsql или любой другой клиент.   -  person sKwa    schedule 08.01.2018


Ответы (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 (создать его на главном холсте с помощью меню служб контроллера)

person Up_One    schedule 08.01.2018
comment
где указать значения переменных в ReplaceText? - person shakedzy; 08.01.2018

Помимо идеи массового загрузчика от @sKwa, вы также можете создать DBCPConnectionPool с вашими Vertica JAR и процессором PutSQL, который будет выполнять SQL. Если вам нужно преобразовать данные в SQL, вы можете использовать ConvertJSONToSQL, в противном случае используйте PutDatabaseRecord, который по сути является «ConvertXToSQL -> PutSQL» вместе.

person mattyb    schedule 08.01.2018
comment
находится в службах контроллера - person Up_One; 08.01.2018