Sawzall (programming language)
সওল একটি পদ্ধতিগত ডোমেন-নির্দিষ্ট প্রোগ্রামিং ভাষা, যা গুগল দ্বারা বিপুল সংখ্যক পৃথক লগ রেকর্ড প্রক্রিয়া করতে ব্যবহৃত হয়। সওল প্রথম 2003 সালে বর্ণনা করা হয়েছিল, এবং এসজেডএল রানটাইম আগস্ট 2010 সালে ওপেন সোর্স করা হয়েছিল। যাইহোক, যেহেতু ম্যাপরিডিউস টেবিল এগ্রিগেটরগুলি প্রকাশ করা হয়নি, তাই ওপেন-সোর্স রানটাইম তাকের বাইরে একাধিক লগ ফাইলের বড় আকারের ডেটা বিশ্লেষণের জন্য কার্যকর নয়। গুগলের মধ্যে বেশিরভাগ উদ্দেশ্যে সওলকে লিঙ্গো (গো-তে লগ) দ্বারা প্রতিস্থাপিত করা হয়েছে। অনুপ্রেরণা গুগলের সার্ভার লগগুলি রেকর্ডের বড় সংগ্রহ (প্রোটোকল বাফার) হিসাবে সংরক্ষণ করা হয় যা জি. এফ. এস-এর মধ্যে অনেক ডিস্কের উপর বিভক্ত করা হয়। লগগুলির সাথে জড়িত গণনাগুলি সম্পাদন করার জন্য, প্রকৌশলীরা সি + + বা জাভাতে ম্যাপরিডিউস প্রোগ্রামগুলি লিখতে পারেন। ম্যাপরিডিউস প্রোগ্রামগুলি সংকলিত করা প্রয়োজন এবং প্রয়োজনের চেয়ে বেশি শব্দবহুল হতে পারে, তাই লগগুলি বিশ্লেষণ করার জন্য একটি প্রোগ্রাম লেখা সময়সাপেক্ষ হতে পারে। দ্রুত স্ক্রিপ্ট লেখা সহজ করার জন্য, রব পাইক এবং অন্যান্য। সওজল ভাষার বিকাশ ঘটান। একটি সওল স্ক্রিপ্ট একটি ম্যাপরিডিউসের ম্যাপ পর্যায়ের মধ্যে চলে এবং টেবিলে মানগুলি "নির্গত" করে। তারপর রিডিউস পর্যায় (যা নিয়ে স্ক্রিপ্ট লেখককে চিন্তিত হতে হবে না) টেবিলগুলিকে একাধিক রান থেকে একক টেবিলের সেটে একত্রিত করে। বর্তমানে, শুধুমাত্র ভাষার রানটাইম (যা একটি একক ইনপুটের উপর একবার সওল স্ক্রিপ্ট চালায়) ওপেন সোর্স করা হয়েছে; ম্যাপরিডিউসে নির্মিত সাপোর্টিং প্রোগ্রামটি মুক্তি পায়নি। কিছু আকর্ষণীয় বৈশিষ্ট্যের মধ্যে রয়েছেঃ একটি সওল স্ক্রিপ্টের একটি একক ইনপুট (একটি লগ রেকর্ড) থাকে এবং শুধুমাত্র টেবিলে নির্গত করে আউটপুট দিতে পারে। স্ক্রিপ্টের অন্য কোনও পার্শ্বপ্রতিক্রিয়া থাকতে পারে না। একটি স্ক্রিপ্ট যে কোনও সংখ্যক আউটপুট টেবিল নির্ধারণ করতে পারে। সারণির প্রকারের মধ্যে রয়েছেঃ সংগ্রহ প্রতিটি নির্গত মূল্য সংরক্ষণ করে, প্রতিটি নির্গত মূল্যের সমষ্টি সংরক্ষণ করে, সর্বাধিক (এন) একটি প্রদত্ত ওজনের উপর শুধুমাত্র সর্বোচ্চ এন মান সংরক্ষণ করে। উপরন্তু, বেশ কয়েকটি পরিসংখ্যানগত সারণি রয়েছে যা সঠিক ফলাফল দেয় না। প্যারামিটার এন যত বেশি হবে, অনুমানগুলি তত বেশি সঠিক হবে। নমুনা (এন) সমস্ত নির্গত মান থেকে এন মানগুলির একটি এলোমেলো নমুনা দেয় কোয়ান্টাইল (এন) প্রদত্ত সংখ্যার একটি ক্রমবর্ধমান সম্ভাব্যতা বিতরণ গণনা করে। শীর্ষ (এন) n মান দেয় যা সম্ভবত নির্গত মানগুলির মধ্যে সবচেয়ে ঘন ঘন। ইউনিক (এন) নির্গত অনন্য মানগুলির সংখ্যা অনুমান করে। সওজলের নকশা ক্ষমতার চেয়ে দক্ষতা এবং ইঞ্জিনের সরলতার পক্ষেঃ সওজল স্ট্যাটিকভাবে টাইপ করা হয় এবং ইঞ্জিনটি চালানোর আগে স্ক্রিপ্টটিকে x86-এ সংকলন করে। সওল যৌগিক তথ্য প্রকারের তালিকা, মানচিত্র এবং কাঠামোকে সমর্থন করে। তবে, কোনও রেফারেন্স বা পয়েন্টার নেই। সমস্ত অ্যাসাইনমেন্ট এবং ফাংশন আর্গুমেন্ট অনুলিপি তৈরি করে। এর অর্থ হল পুনরাবৃত্তিমূলক তথ্য কাঠামো এবং চক্র অসম্ভব। সি-এর মতো, ফাংশনগুলি গ্লোবাল ভেরিয়েবল এবং স্থানীয় ভেরিয়েবলগুলি পরিবর্তন করতে পারে তবে ক্লোজার নয়। সওল কোড এই সম্পূর্ণ সওল প্রোগ্রামটি ইনপুটটি পড়বে এবং তিনটি ফলাফল তৈরি করবেঃ রেকর্ডের সংখ্যা, মানগুলির যোগফল এবং মানগুলির বর্গগুলির যোগফল। গণনাঃ সারণিতে মোট সংখ্যার যোগফল; মোটঃ সারণিতে ফ্লোটের যোগফল; x: ফ্লোট = ইনপুট; নির্গমন গণনা <-1; নির্গমন মোট <-x; নির্গমন যোগফল <-x * x; এছাড়াও দেখুন পিগ-অ্যাপাচি হ্যাডুপ স 'মিল (সফ্টওয়্যার)-এর সাথে ব্যবহারের জন্য অনুরূপ সরঞ্জাম এবং ভাষা। আরও পড়ুন এস. ঘেমাওয়াত, এইচ. গোবিওফ, এস.-টি. লিউং, গুগল ফাইল সিস্টেম, ইনঃ অপারেটিং সিস্টেমের নীতি, কার্যধারা, 17 এসিএম প্রেস, 2003, পিপি। বাহ্যিক লিঙ্ক গুগল কোড আর্কাইভ-গুগল কোড প্রজেক্ট হোস্টিংয়ের জন্য দীর্ঘমেয়াদী সঞ্চয়। ম্যাপরিডিউস ডোমেন-নির্দিষ্ট প্রোগ্রামিং ভাষাগুলি পদ্ধতিগত প্রোগ্রামিং ভাষাগুলি গুগল সফ্টওয়্যার প্রোগ্রামিং ভাষাগুলি 2003 সালে অ্যাপাচি লাইসেন্স ব্যবহার করে তৈরি করা হয়েছিল।