При запуске процессора базы данных запросов в NiFi некоторые записи теряются.
Я пытаюсь вытащить данные из Oracle DB, а максимальное значение столбца - это дата создания типа данных date. К нему не прикреплена метка времени (23-JUN-18). При запуске задания каждые 5 минут для обеспечения приема данных в режиме, близком к реальному, некоторые записи теряются. Я не уверен, происходит ли это из-за того, что метка времени отсутствует в таблице ИЛИ может ли это быть проблемой синхронизации, например, при запросе БД, если были вставлены новые записи


Как правило, QueryDatabaseTable (QDT) должна планироваться со скоростью, соизмеримой со значениями в столбце максимального значения. Использование столбца максимального значения типа Date (без отметки времени) означает, что вы должны проверять наличие новых значений (т.е. планировать процессор QDT) только каждый день, а не каждые 5 минут. В противном случае как процессор узнает, что нужно брать строки с текущим днем, которые поступили с момента последней проверки? Он смотрит только на дату и (гипотетически) либо захватит все данные с этим значением для даты, что приведет к дублированию данных, либо (как он на самом деле ведет себя) будет искать данные со значением следующего дня, которые он выиграл. не найти до следующего дня, что также приводит к потере данных.
Возможные обходные пути - запланировать запуск QDT один раз в день или добавить / изменить столбец, чтобы включить временную метку и запланировать QDT соответственно, или использовать другой столбец (возможно, через представление БД), который всегда увеличивается для каждой новой строки в качестве максимального значения Столбец.
Надеюсь, что когда-нибудь появится также процессор Oracle CDC (вероятно, использующий LogMiner) для получения изменений в режиме, близком к реальному времени, может быть способ использовать таблицы QDT и Oracle / LogMiner для эмуляции этой возможности, если изменения доступны в таблица с такими же качествами (т. е. столбец максимального значения, который всегда увеличивается по отношению к расписанию выполнения QDT).
Может быть, это не то место, но поддерживает ли nifi интеграцию Oracle / LogMiner? Я не могу этого найти.
Не во время написания этой статьи. Существует открытая Jira (issues.apache.org/jira/browse/NIFI-6032) для добавления поддержки XStream, и вы можете использовать что-то вроде ExecuteSQL для самостоятельного чтения таблиц, доступных для LogMiner.
Не могли бы вы опубликовать шаблон NiFi того, что у вас есть?