Sawzall (programming language)
સોઝલ એક પ્રક્રિયાગત ડોમેન-વિશિષ્ટ પ્રોગ્રામિંગ ભાષા છે, જેનો ઉપયોગ ગૂગલ દ્વારા મોટી સંખ્યામાં વ્યક્તિગત લોગ રેકોર્ડ્સ પર પ્રક્રિયા કરવા માટે થાય છે. સોઝલનું વર્ણન સૌપ્રથમ 2003માં કરવામાં આવ્યું હતું, અને એસઝેડએલ રનટાઇમ ઓગસ્ટ 2010માં ઓપન-સોર્સ કરવામાં આવ્યું હતું. જો કે, મેપરેડ્યુસ ટેબલ એગ્રીગેટર્સ બહાર પાડવામાં આવ્યા નથી, તેથી ઓપન-સોર્સ રનટાઇમ છાજલીની બહાર બહુવિધ લોગ ફાઇલોના મોટા પાયે ડેટા વિશ્લેષણ માટે ઉપયોગી નથી. ગૂગલમાં મોટાભાગના હેતુઓ માટે સોઝલને લિંગો (ગોમાં લોગ) દ્વારા બદલવામાં આવ્યું છે. પ્રેરણા ગૂગલના સર્વર લોગ્સ રેકોર્ડના મોટા સંગ્રહ (પ્રોટોકોલ બફર્સ) તરીકે સંગ્રહિત થાય છે જે જી. એફ. એસ. ની અંદર ઘણી ડિસ્ક પર વિભાજિત થાય છે. લોગ સાથે સંકળાયેલી ગણતરીઓ કરવા માટે, ઇજનેરો સી + + અથવા જાવામાં મેપરેડ્યુસ પ્રોગ્રામ્સ લખી શકે છે. મેપરેડ્યુસ પ્રોગ્રામ્સને સંકલિત કરવાની જરૂર છે અને તે જરૂરી કરતાં વધુ શાબ્દિક હોઈ શકે છે, તેથી લોગનું વિશ્લેષણ કરવા માટે પ્રોગ્રામ લખવામાં સમય લાગી શકે છે. ઝડપી સ્ક્રિપ્ટ્સ લખવાનું સરળ બનાવવા માટે, રોબ પાઇક એટ અલ. સોઝલ ભાષાનો વિકાસ કર્યો. સૉઝલ લિપિ મેપરેડ્યુસના નકશાના તબક્કામાં ચાલે છે અને કોષ્ટકો પર મૂલ્યોને "બહાર કાઢે છે". પછી ઘટાડો તબક્કો (જેના વિશે પટકથા લેખકે ચિંતા કરવાની જરૂર નથી) બહુવિધ રનમાંથી કોષ્ટકોને કોષ્ટકોના એક જ સમૂહમાં એકત્રિત કરે છે. હાલમાં, માત્ર ભાષાનો રનટાઇમ (જે એક જ ઇનપુટ પર એકવાર સોઝલ સ્ક્રિપ્ટ ચલાવે છે) ઓપન-સોર્સ કરવામાં આવ્યો છે; મેપરેડ્યુસ પર બનેલો સહાયક પ્રોગ્રામ બહાર પાડવામાં આવ્યો નથી. કેટલીક રસપ્રદ વિશેષતાઓમાં નીચેનાનો સમાવેશ થાય છેઃ સોઝલ સ્ક્રિપ્ટમાં એક જ ઇનપુટ (લોગ રેકોર્ડ) હોય છે અને તે માત્ર કોષ્ટકો પર ઉત્સર્જન કરીને આઉટપુટ કરી શકે છે. સ્ક્રિપ્ટની અન્ય કોઈ આડઅસર થઈ શકે નહીં. સ્ક્રિપ્ટ કોઈપણ સંખ્યામાં આઉટપુટ કોષ્ટકોને વ્યાખ્યાયિત કરી શકે છે. કોષ્ટકના પ્રકારોમાં નીચેનાનો સમાવેશ થાય છેઃ સંગ્રહ દરેક ઉત્સર્જિત મૂલ્યને બચાવે છે, દરેક ઉત્સર્જિત મૂલ્યનો સરવાળો બચાવે છે, મહત્તમ (એન) આપેલ વજન પર માત્ર ઉચ્ચતમ એન મૂલ્યોને બચાવે છે. વધુમાં, આંકડાકીય કોષ્ટકના ઘણા પ્રકારો છે જે અચોક્કસ પરિણામો આપે છે. પરિમાણ n જેટલું ઊંચું હોય છે, અંદાજો વધુ સચોટ હોય છે. નમૂના (એન) તમામ ઉત્સર્જિત મૂલ્યોમાંથી એન મૂલ્યોનો રેન્ડમ નમૂનો આપે છે, માત્રાત્મક (એન) આપેલ સંખ્યાઓના સંચિત સંભાવના વિતરણની ગણતરી કરે છે. ટોચ (n) એ n મૂલ્યો આપે છે જે સંભવતઃ ઉત્સર્જિત મૂલ્યોમાં સૌથી વધુ વારંવાર હોય છે. અનન્ય (એન) ઉત્સર્જિત અનન્ય મૂલ્યોની સંખ્યાનો અંદાજ કાઢે છે. સોઝલની ડિઝાઇન શક્તિ પર કાર્યક્ષમતા અને એન્જિનની સરળતાની તરફેણ કરે છેઃ સોઝલ સ્થિર રીતે ટાઇપ કરવામાં આવે છે, અને એન્જિન તેને ચલાવતા પહેલા સ્ક્રિપ્ટને x86 પર સંકલિત કરે છે. સોઝલ સંયોજન માહિતી પ્રકારોની યાદીઓ, નકશાઓ અને માળખાને ટેકો આપે છે. જો કે, ત્યાં કોઈ સંદર્ભો અથવા સૂચનો નથી. તમામ સોંપણીઓ અને કાર્ય દલીલો નકલો બનાવે છે. આનો અર્થ એ છે કે પુનરાવર્તિત માહિતી માળખાં અને ચક્ર અશક્ય છે. સી ની જેમ, વિધેયો વૈશ્વિક ચલ અને સ્થાનિક ચલમાં ફેરફાર કરી શકે છે પરંતુ બંધ નથી. સોઝલ કોડ આ સંપૂર્ણ સોઝલ પ્રોગ્રામ ઇનપુટ વાંચશે અને ત્રણ પરિણામો ઉત્પન્ન કરશેઃ રેકોર્ડની સંખ્યા, મૂલ્યોનો સરવાળો અને મૂલ્યોના વર્ગોનો સરવાળો. ગણતરીઃ પૂર્ણાંકનો કોષ્ટક સરવાળો; કુલઃ ફ્લોટનો કોષ્ટક સરવાળો; x: ફ્લોટ = ઇનપુટ; ઉત્સર્જન ગણતરી <-1; ઉત્સર્જન કુલ <-x; ઉત્સર્જન સરવાળો <-x * x; પિગ પણ જુઓ-અપાચે હડૂપ સૉમિલ (સોફ્ટવેર) સંદર્ભો સાથે ઉપયોગ કરવા માટે સમાન સાધન અને ભાષા. બાહ્ય લિંક્સ ગૂગલ કોડ આર્કાઇવ-ગૂગલ કોડ પ્રોજેક્ટ હોસ્ટિંગ માટે લાંબા ગાળાના સંગ્રહ. મેપર્યુસ ડોમેન-વિશિષ્ટ પ્રોગ્રામિંગ ભાષાઓ પ્રોસિજરલ પ્રોગ્રામિંગ ભાષાઓ ગૂગલ સોફ્ટવેર પ્રોગ્રામિંગ ભાષાઓ 2003માં અપાચે લાઇસન્સનો ઉપયોગ કરીને સોફ્ટવેર બનાવવામાં આવી હતી.