Система Apache NiFi хранит детальную информацию обо всех данных, которые она получает и обрабатывает. Вся информация об операциях обработки, преобразования, маршрутизации, разделения, агрегации и распределения по другим конечным точкам хранится в специальном репозитории, называемом Data Provenance. Перевести на русский термин достаточно сложно, так слово «провенанс» в русском языке имеет несколько другое значение. Поэтому мы предлагаем не пытаться перевести этот термин на русский, а называть его так, как он называется в оригинальном языке — Data Provenance.
Для того, чтобы на практике понять назначение компонента Data Provenance вернемся к нашему потоку, описанному в статье Создание простого DataFlow в NiFi.
- Скопируем тестовый файл sample.txt в папку input, чтобы запустить поток.
- Допустим нам требуется посмотреть какие данные поступили в процессор GetFile и что получилось на выходе. Правой кнопкой мыши кликаем на процессор GetFile и выбираем Data Provenance.
- Появляется окно со списком всех событий, связанных с выбранным процессором GetFile. Последнее событие произошло в результате выполнения п.1
- Для того чтобы просмотреть детали события, необходимо нажать иконку «i» (первый столбец в таблице). При нажатии появляется окно с описанием деталей события. Выберите вкладку «Content». Видно, что входящего потока не было так как процессор GetFile не получил его от другого процессора DataFlow, а прочитал данные из файла. Но есть данные, исходящие из процессора.
- Чтобы посмотреть содержание исходящих, необходимо нажать кнопку «View». Откроется окно с данными, которые были отправлены в рамках события, которое мы выбрали в п.3. В нашем случае это будет содержание текстового файла sample.txt.
- Если открыть Data Provenance для процессора PutFile, то будет видно примерно все то же, что и для процессора GetFile, но с той разницей что у PutFile есть входящий поток. Так как мы выполняем простое копирование файла без каких либо преобразований, то данные везде будут одинаковые — содержание файла sample.txt.
Есть также возможность посмотреть события в хранилище Data Provenance, которые относятся ко всей системе Apache NiFi, а не к какому то конкретному процессору. Для этого в правом верхнем углу главного окна Apache NiFi необходимо выбрать в меню пункт Data Provenance.
В нашем случае был использован достаточно простой DataFlow и, в общем случае, у нас не было необходимости в отладке потока. Но для более сложных потоков хранилище Data Provenance является незаменимым компонентом в части отладки и поиска проблем.
При копировании материалов ссылка на сайт обязательна. Вопросы, замечания, предложения и комментарии к статьям можно направлять на адрес: info@datanetworks.ru