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 है