জাভাস্ক্রিপ্ট / নোড.জেএস (আমি কিউব ব্যবহার করছি) এ বড় (5-10 গিগাবাইট) লগফিলের কিছু পার্সিং করা দরকার।
লগলাইনটি এমন দেখাচ্ছে:
10:00:43.343423 I'm a friendly log message. There are 5 cats, and 7 dogs. We are in state "SUCCESS".
আমাদের প্রতিটি লাইন পড়তে হবে, কিছু পার্সিং করতে হবে (উদাহরণস্বরূপ স্ট্রিপ আউট 5
, 7
এবং SUCCESS
), তারপরে তাদের জেএস ক্লায়েন্ট ব্যবহার করে এই ডেটা কিউবে ( https://github.com/square/cube ) পাম্প করুন।
প্রথমত, নোডে রেখার দ্বারা একটি ফাইল, লাইনে প্রান্তিক উপায় কী?
এটি অনলাইনে মোটামুটি সাধারণ প্রশ্ন বলে মনে হচ্ছে:
- http://www.quora.com/What-is-the-best-way-to-read-a-file-line-by-line-in-node-js
- নোড.জেজে এক সময় একটি ফাইল পড়ুন?
অনেকগুলি উত্তর তৃতীয় পক্ষের মডিউলগুলির একগুচ্ছকে দেখায় বলে মনে হচ্ছে:
- https://github.com/nickewing/line-reader
- https://github.com/jahewson/node-byline
- https://github.com/pkrumins/node-lazy
- https://github.com/Gagle/Node-BufferedReader
তবে এটি মোটামুটি বেসিক টাস্কের মতো মনে হচ্ছে - অবশ্যই, স্টাডলিবের মধ্যে একটি টেক্সটফাইলে পড়ার সহজ উপায় আছে, লাইন বাই লাইন?
দ্বিতীয়ত, আমার তখন প্রতিটি লাইন প্রক্রিয়া করা প্রয়োজন (যেমন টাইমস্ট্যাম্পকে একটি ডেট অবজেক্টে রূপান্তর করা এবং দরকারী ক্ষেত্রগুলি বের করা) ract
এটি করার সর্বোত্তম উপায় কী, মাধ্যমে আউটপুট সর্বাধিক? এমন কোনও উপায় আছে যা প্রতিটি লাইনে পড়ে বা কিউবে পাঠানোর পথে বাধা পাবে না?
তৃতীয়ত - আমি স্ট্রিং স্প্লিটগুলি ব্যবহার করে অনুমান করছি, এবং এর জেএস সমতুল্য (ইনডেক্স অফ! = -1?) রেগেক্সগুলির তুলনায় অনেক দ্রুত হবে? নোড.জেজে বড় অঙ্কের পাঠ্য ডেটা পার্স করার ক্ষেত্রে কারও কি অনেক অভিজ্ঞতা আছে?
চিয়ার্স, ভিক্টর