मैचिंग पंक्तियों को संयोजित करने के लिए csv कैसे बदलें?


1

मेरे पास कुछ लेनदेन डेटा के साथ एक CSV फ़ाइल है। मान लें कि दिनांक, मात्रा, मूल्य और दिशा (बेचना / खरीदना) है। इसके अतिरिक्त प्रत्येक लेनदेन के लिए एक आईडी है और प्रत्येक समापन लेनदेन पर (नया एक) संबंधित लेनदेन का एक संदर्भ है। शास्त्रीय डेटाबेस संदर्भित।

अब मैं कुछ आंकड़े करना चाहता हूं और कुछ भूखंडों को आकर्षित करना चाहता हूं। यह ऑक्टेव, LaTeX / TikZ, Gnuplot या जो भी हो के माध्यम से किया जा सकता है। ऐसा करने के लिए मुझे एक पंक्ति में मूल्य खरीदने और बेचने दोनों की आवश्यकता है। मेरा विचार एक और सीएसवी प्राप्त करने के लिए आवश्यक जानकारी और फिर आँकड़ों को करने के लिए सीएसवी को तैयार करना था। अंत में मैं स्क्रिप्ट के आधार पर समाधान चाहता हूं न कि स्प्रेडशीट पर। क्योंकि डेटा अक्सर बदल सकता है (ऑनलाइन डीबी से निर्यात)।

मेरा वास्तविक समाधान (देखें http://paste.ubuntu.com/6262822/ ) एक बैश स्क्रिप्ट है जो CSV लाइन को लाइन से पार्स करता है और यदि कोई संबंधित लेन-देन मौजूद है तो जाँच करता है। यदि पाया जाता है, तो एक नई पंक्ति गंतव्य CSV को लिखी जाती है। अगर चेतावनी नहीं छपी है।

बुरी खबर: स्रोत फ़ाइल में प्रत्येक पंक्ति के लिए मुझे पूरी फ़ाइल को कुछ बार पढ़ना होगा। यह 300 लाइनों के लिए लंबे समय तक चलने वाले 10sec का कारण बनता है। जैसे ही लाइन की संख्या जल्द बढ़ सकती है (> 10k लाइनें), यह सही नहीं है। मुझे पता है, कि स्क्रिप्ट में कई गोले खोले जाने हैं, जो प्रदर्शन की समस्याओं का कारण हो सकते हैं।

अब मेरे सवाल:

  • बैश / अच / / सेड है .... चीजों को करने का एक अच्छा तरीका है?
  • क्या मुझे पहली बार SQL का उपयोग करने के लिए "वास्तविक" स्थानीय डेटाबेस में सभी डेटा आयात करना चाहिए?
  • क्या वांछित परिणाम प्राप्त करने का एक आसान तरीका है?

1
मेरे (या MySQL) के लिए एमएस एक्सेस के लिए एक आदर्श मामले की तरह लगता है
ब्रायन एडकिंस

एमएस संभव नहीं है क्योंकि मैं एक शुद्ध लिनक्स बॉक्स का उपयोग कर रहा हूं। हालांकि MySQL (या समान) काफी एक विकल्प है। Thx
क्रिश्चियन वुल्फ

जवाबों:


1

वास्तव में, मैंने PostgreSQL (पहले से ही लैपटॉप पर उपलब्ध था) का उपयोग करके समस्या को हल किया। मैंने \copyएक अस्थायी तालिका के माध्यम से डेटा को जोड़ा और कुछ विचार, चयन आदि किए। अंत में सब कुछ (लोडिंग डेटा, कई आउटपुट फाइलें और पिवट टेबल बनाना) आधे से भी कम समय लगता है। उत्तम।

धन्यवाद।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.