Хранилище информации об операциях обработки данных (Data Provenance)

Система Apache NiFi хранит детальную информацию обо всех данных, которые она получает и обрабатывает. Вся информация об операциях обработки, преобразования, маршрутизации, разделения, агрегации и распределения по другим конечным точкам хранится в специальном репозитории, называемом Data Provenance. Перевести на русский термин достаточно сложно, так слово «провенанс» в русском языке имеет несколько другое значение. Поэтому мы предлагаем не пытаться перевести этот термин на русский, а называть его так, как он называется в оригинальном языке — Data Provenance.

Для того, чтобы на практике понять назначение компонента Data Provenance вернемся к нашему потоку, описанному в статье Создание простого DataFlow в NiFi.

  1. Скопируем тестовый файл sample.txt в папку input, чтобы запустить поток.

    Apache NiFi DataFlow
  2. Допустим нам требуется посмотреть какие данные поступили в процессор GetFile и что получилось на выходе. Правой кнопкой мыши кликаем на процессор GetFile и выбираем Data Provenance.

    Переход в Data Provenance для процессора GetFile
  3. Появляется окно со списком всех событий, связанных с выбранным процессором GetFile. Последнее событие произошло в результате выполнения п.1

    NiFi Data Provenance для процессора GetFile
  4. Для того чтобы просмотреть детали события, необходимо нажать иконку «i» (первый столбец в таблице). При нажатии появляется окно с описанием деталей события. Выберите вкладку «Content». Видно, что входящего потока не было так как процессор GetFile не получил его от другого процессора DataFlow, а прочитал данные из файла. Но есть данные, исходящие из процессора.

    Детали события Data Provenance (Provenance Event)

  5. Чтобы посмотреть содержание исходящих, необходимо нажать кнопку «View». Откроется окно с данными, которые были отправлены в рамках события, которое мы выбрали в п.3. В нашем случае это будет содержание текстового файла sample.txt.
    Содержание исходящего потока Data Provenance (Provenance Event)

  6. Если открыть Data Provenance для процессора PutFile, то будет видно примерно все то же, что и для процессора GetFile, но с той разницей что у PutFile есть входящий поток. Так как мы выполняем простое копирование файла без каких либо преобразований, то данные везде будут одинаковые — содержание файла sample.txt.

    Просмотр контента входящего потока в Data Provenance (Provenance Event)

Есть также возможность посмотреть события в хранилище Data Provenance, которые относятся ко всей системе Apache NiFi, а не к какому то конкретному процессору. Для этого в правом верхнем углу главного окна Apache NiFi необходимо выбрать в меню пункт Data Provenance.

Вызов списка событий Data Provenance для всей системы Apache NiFi

В нашем случае был использован достаточно простой DataFlow и, в общем случае, у нас не было необходимости в отладке потока. Но для более сложных потоков хранилище Data Provenance является незаменимым компонентом в части отладки и поиска проблем.

При копировании материалов ссылка на сайт обязательна. Вопросы, замечания, предложения и комментарии к статьям можно направлять на адрес: info@datanetworks.ru