स्प्लंक - परिकलित फ़ील्ड
कई बार, हमें उन क्षेत्रों पर कुछ गणना करने की आवश्यकता होगी जो स्प्लंक घटनाओं में पहले से ही उपलब्ध हैं। हम इन गणनाओं के परिणाम को विभिन्न खोजों द्वारा बाद में संदर्भित किए जाने वाले नए क्षेत्र के रूप में संग्रहीत करना चाहते हैं। यह स्प्लंक खोज में परिकलित फ़ील्ड की अवधारणा का उपयोग करके संभव बनाया गया है।
एक सरल उदाहरण पूर्ण दिन के नाम के बजाय एक सप्ताह के दिन के पहले तीन पात्रों को दिखाना है। हमें इस क्षेत्र के हेरफेर को प्राप्त करने और एक नए क्षेत्र के नाम के तहत नए परिणाम को संग्रहीत करने के लिए कुछ स्प्लंक फ़ंक्शन को लागू करने की आवश्यकता है।
उदाहरण
Web_application लॉग फ़ाइल में बाइट्स और date_wday नाम के दो फ़ील्ड हैं। बाइट्स फ़ील्ड में मान बाइट्स की संख्या है। हम इस मान को GB के रूप में प्रदर्शित करना चाहते हैं। इसके लिए GB मान प्राप्त करने के लिए फ़ील्ड को 1024 से विभाजित करना होगा। हमें इस गणना को बाइट्स फ़ील्ड पर लागू करने की आवश्यकता है।
इसी तरह, date_wday सप्ताह के दिन का पूरा नाम प्रदर्शित करता है। लेकिन हमें केवल पहले तीन पात्रों को प्रदर्शित करने की आवश्यकता है।
इन दो क्षेत्रों में मौजूदा मान नीचे दी गई छवि में दिखाए गए हैं -
Eval फंक्शन का उपयोग करना
परिकलित फ़ील्ड बनाने के लिए, हम eval फ़ंक्शन का उपयोग करते हैं। यह फ़ंक्शन नए फ़ील्ड में गणना का परिणाम संग्रहीत करता है। हम नीचे दो गणनाएँ लागू करने जा रहे हैं -
# divide the bytes with 1024 and store it as a field named byte_in_GB
Eval byte_in_GB = (bytes/1024)
# Extract the first 3 characters of the name of the day.
Eval short_day = substr(date_wday,1,3)
नई फ़ील्ड्स जोड़ना
हम खोज परिणाम के भाग के रूप में प्रदर्शित क्षेत्रों की सूची में ऊपर बनाए गए नए फ़ील्ड जोड़ते हैं। ऐसा करने के लिए, हम चुनते हैंAll fields नीचे दिए गए चित्र में दिखाए गए अनुसार इन नए क्षेत्रों के नाम के खिलाफ विकल्प और टिक मार्क
परिकलित फ़ील्ड प्रदर्शित करना
उपरोक्त फ़ील्ड चुनने के बाद, हम खोज परिणाम में परिकलित फ़ील्ड्स को नीचे दिखाए गए अनुसार देख सकते हैं। खोज क्वेरी नीचे दिखाए गए अनुसार गणना किए गए फ़ील्ड प्रदर्शित करती है -