PutSQL
को रोकें प्रोसेसर और फ्लोफाइल्स को कतारबद्ध होने दें।- एक बार कतार में लगने के बाद,
success
पर राइट क्लिक करें संबंधUpdateAttribute
. के बीच औरPutSQL
औरList Queue
. चुनें । - कोई एक फ़्लोफ़ाइल चुनें और
Attributes
. पर नेविगेट करें टैब करें और देखें कि विशेषताएँabsolute.path
. हैं औरflowfilename
मौजूद हैं और यदि
वे मौजूद हैं, तो सत्यापित करें कि क्या उनके पास अपेक्षित मान सेट है। आपके मामले मेंabsolute.path
/path/in/nifi/node/to/file
का मान होना चाहिए औरflowfilename
/data.csv
का मान होना चाहिए
आपके लिए प्रश्न:क्या आप UpdateAttribute
. का उपयोग करके इन विशेषताओं को स्वयं सेट कर रहे हैं? , इसका कारण यह है कि NiFi flowfilename
. नामक विशेषता उत्पन्न नहीं करता है , यह filename
. नाम से एक जनरेट करता है ।
एक और बात, सुनिश्चित करें कि या तो absolute.path
. का मान है एक /
. के साथ समाप्त होता है अंत में या flowfilename
. का मान एक /
. से शुरू होता है . यदि नहीं, तो उन्हें जोड़ दिया जाएगा और परिणाम /path/in/nifi/node/to/filedata.csv
होगा। . आप कोशिश कर सकते हैं append
फ़ंक्शन जो @Mahendra ने सुझाया था, अन्यथा आप बस ${absolute.path}/${flowfilename}
का उपयोग कर सकते हैं ।
अपडेट करें
मुझे अभी एहसास हुआ कि absolute.path
filename
. जैसी मुख्य विशेषता है , filesize
, mime.type
, आदि। कुछ प्रोसेसर सभी मुख्य विशेषताओं का उपयोग करते हैं जबकि कुछ बहुत कम उपयोग करते हैं जिनकी आवश्यकता होती है। GenerateTableFetch
absolute.path
लिखता है लेकिन इसके लिए कुछ भी निर्धारित नहीं करता है। इसलिए इसमें ./
है जो कि डिफ़ॉल्ट मान है।
तो काम के प्रति आपके दृष्टिकोण के लिए मेरा सुझाव है, आप मैन्युअल रूप से absolute.path
सेट/ओवरराइट कर सकते हैं UpdateAttribute
. का उपयोग करके विशेषता (ठीक वैसे ही जैसे आपने filename
. को अधिलेखित कर दिया है ) और वांछित मान सेट करें जो /path/in/nifi/node/to/file
है