Разница между свойствами процессора и атрибутами потокового файла в Apache NiFi

Вы можете добавить переменную, чтобы сохранить статус диалога.

var isDialogOpen = false;
$('#passwd', $form)
            .on('keyup', function(e){
                //  If dialog is not opening
                if(!isNumberKey(e)  && !isDialogOpen){
                    this.value = this.value.substr(0, this.value.length - 1);
                    BootstrapDialog.alert({message: '<%=rb.getStringForJS("ALERT_PASSWORD_NUMBER")%>', type: BootstrapDialog.TYPE_DANGER });

                     // Now it is opening
                     isDialogOpen = true;
                }
            });

И когда вы закрываете диалог, вы должны изменить статус.

isDialogOpen = false;
0
задан Dusan Bajic 19 January 2019 в 19:53
поделиться

1 ответ

Очень хороший вопрос, который приходит в голову всем, когда они начинают работать над созданием потоков данных в NiFi.

Перво-наперво: свойства против атрибутов FlowFile

Как вы сами упоминали в своем вопросе, Properties - это то, что используется для управления поведением вашего Processor в то время как Attributes являются метаданными вашего потока в действии.

Простой пример, возьмем процессор GetFile. Свойства, которые он предоставляет, такие как Input Directory, File Filter и т. Д., Сообщают вашему процессору, где & amp; как искать исходные данные. Когда процессор успешно находит какой-либо источник, соответствующий вашей конфигурации, он запускает поток, то есть генерируется FlowFile. Этот FlowFile будет нести содержимое исходных данных, а также некоторые метаданные источника, такие как имя файла, размер файла, время последнего изменения и т. Д. Эти метаданные могут реально помочь вам в процессе с вашими последующими процессорами, такими как проверка типа файла и соответственно маршрутизация FlowFile. И обратите внимание, метаданные не являются фиксированными; это отличается с различными процессорами.

Существует несколько основных атрибутов, которые каждый процессор добавил бы, например application.type, filesize, uuid, path и т. Д.,

. Какова цель позволить пользователям добавлять пользовательские свойства, когда они не добавлены к атрибутам?

Это функция, которую NiFi предлагает процессорам, которые они могут использовать или игнорировать. Не все процессоры позволяют добавлять пользовательские свойства. Только выборочные процессоры.

Давайте возьмем InvokeHttp в качестве примера. Этот процессор позволяет разработчику создавать собственные свойства. Когда пользователь добавляет новое пользовательское свойство, это свойство добавляется в качестве заголовка к HTTP-вызову, который процессор собирается сделать, потому что процессор построен таким образом. Он ищет любые динамические (пользовательские) свойства. Если они присутствуют, они будут считаться пользовательскими заголовками, которые пользователь хочет отправить.

По крайней мере, в контексте этого процессора не имеет смысла собирать эти данные заголовка в качестве метаданных, потому что они могут быть бесполезны для последующих процессоров, но есть некоторые другие процессоры, которые действуют по-другому, когда предоставляются пользовательские свойства как UpdateAttribute, единственной целью которого является добавление любого пользовательского свойства в качестве атрибута к входящему FlowFile.

0
ответ дан Sivaprasanna Sethuraman 19 January 2019 в 19:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: