Как настроить NiFi InvokeHTTP для публикации вставки в Clickhouse - PullRequest
0 голосов
/ 09 апреля 2020

У меня в атрибуте NiFi полная команда INSERT, которая работает с CURL:

echo "INSERT INTO default.PERFTEST_BUFFER VALUES (1, '2020-04-09 19:06:02', 48.8644, 'A')" \
  | curl 'http://xxx.xxx.xxx.xxx:8123/?' --data-binary @-

Вставка в атрибут:

INSERT INTO default.PERFTEST_BUFFER 
VALUES (1, '2020-04-09 19:06:02', 48.8644, 'A')

Не могу понять, что должно быть все параметры процессора InvokeHTTP.

Я использовал первые два:

  POST

  http://xxx.xxx.xxx.xxx:8123/

, тогда я потерялся. Есть идеи как его настроить?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Способ, которым я сделал это, благодаря Даггетту и его примеру:

https://github.com/zezutom/NiFiByExample

Используйте перед InvokeHTTP процессор ReplaceText, который заменяет содержимое файла потока по значению переменной «Вставка» с полной командой вставки

  • Поиск значения (? s) (^. * $)
  • Замена значения $ {Insert}

Итак, содержимое файла потока:

INSERT INTO default.PERFTEST_BUFFER VALUES (1, '2020-04-09 19:06:02', 48.8644, 'A')

За процессором InvokeHTTP следуют следующие параметры

  • HTTP-метод POST
  • Удаленный URL-адрес http://xxx.xxx.xxx.xxx: 8123 /
  • Служба контекста SSL Не задано значение
  • Время ожидания подключения 5 секунд
  • Время ожидания чтения 15 секунд
  • Дата включения Заголовок True
  • Follow Redirects True
  • Атрибуты для отправки Не задано значение
  • Basi c Аутентификация Имя пользователя Не задано значение
  • Basi c Пароль аутентификации Не задано значение
  • Служба настройки прокси-сервера Не ​​задано значение
  • Хост прокси-сервера Не ​​задано значение
  • Порт прокси-сервера Не ​​задано значение
  • Тип прокси-сервера http
  • Имя пользователя прокси-сервера Не ​​задано значение
  • Пароль прокси-сервера Не ​​задано значение
  • Поместите тело ответа в атрибут № значение
  • Макс. длина для ввода атрибута 256
  • Использовать дайджест-проверку подлинности false
  • Всегда выводить ответ true
  • Добавить заголовки ответа к запросу false
  • Content-Type $ {mime.type}
  • Отправить тело сообщения true
  • Использовать Chunked Encoding false
  • Наказать «No Retry» false
  • Использовать HTTP ETag false
  • Максимальный размер кэша ETag 10MB
0 голосов
/ 10 апреля 2020

Если ваш запрос stati c, вы можете передать его в строке запроса в закодированном формате:

# GET

curl 'http://xxx.xxx.xxx.xxx:8123/?query=INSERT%20INTO%20default.PERFTEST_BUFFER%20VALUES%20%281%2C%20%272020-04-09%2019%3A06%3A02%27%2C%2048.8644%2C%20%27A%27%29'


# POST

curl -d '' 'http://xxx.xxx.xxx.xxx:8123/?query=INSERT%20INTO%20default.PERFTEST_BUFFER%20VALUES%20%281%2C%20%272020-04-09%2019%3A06%3A02%27%2C%2048.8644%2C%20%27A%27%29'

Необходимо передать необходимые значения всего двум параметрам: HTTP-метод и Удаленный URL из InvokeHTTP -процессор.

...