Харитани қисқартириш бу катта ҳажмдаги маълумотларни фойдали умумлаштирилган натижаларга тўплаш учун маълумотларни қайта ишлаш парадигмаси


Download 80.3 Kb.
bet1/3
Sana31.01.2023
Hajmi80.3 Kb.
#1142273
  1   2   3
Bog'liq
Харитани қисқартириш


Харитани қисқартириш - бу катта ҳажмдаги маълумотларни фойдали умумлаштирилган натижаларга тўплаш учун маълумотларни қайта ишлаш парадигмаси. Харитани қисқартириш операцияларини бажариш учун MongoDB MapReduce маълумотлар базаси буйруғини беради. Қуйидаги харитани қисқартириш операцияси келтирилган:

Ушбу харитани қисқартириш оператсиясида MongoDB ҳар бир кириш ҳужжатига харита босқичини қўллайди яъни сўров шартига мос келадиган тўпламдаги ҳужжатлардир. Харита функцияси калит-қиймат жуфтларини чиқаради. Бир нечта қийматга эга бўлган калитлар учун MongoDB жамланган маълумотларни тўплайдиган ва зичлаштирадиган қисқартириш босқичини қўллайди. Кейин MongoDB натижаларни тўпламда сақлайди. Камайтириш функциясининг чиқиши йиғиш натижаларини янада зичлаштириш ёки қайта ишлаш учун якуний функциядан ўтиши мумкин.


MongoDB -даги барча харитани қисқартириш функциялари JavaScript-дир ва улар монго жараёни давомида ишлайди. Харитани қисқартириш операциялари битта тўпламнинг ҳужжатларини кириш сифатида қабул қилади ва харита босқичини бошлашдан олдин ҳар қандай саралаш ва чеклашни амалга ошириши мумкин. MapReduce харитани қисқартириш операцияси натижаларини ҳужжат сифатида қайтариши ёки натижаларни коллекцияларга ёзиши мумкин.
MongoDB да харитани қисқартириш операциялари қийматларни калитга хариталаш ёки боғлаш учун махсус JavaScript функцияларидан фойдаланади. Агар калитда унга кўрсатилган бир нечта қийматлар бўлса, операция калит учун қийматларни битта объектга камайтиради.
Махсус JavaScript функцияларидан фойдаланиш операцияларни харитани қисқартириш учун мослашувчанликни таъминлайди. Масалан, ҳужжатни қайта ишлашда харита функцияси бир нечта калит ва қиймат харитасини яратиши мумкин ёки хариталашсиз амалга ошириш мумкин. Харитани қисқартириш операциялари, шунингдек, хаританинг охирида натижаларга якуний ўзгартиришлар киритиш ва қўшимча ҳисоб-китобларни бажариш каби операцияни қисқартириш учун махсус JavaScript функциясидан фойдаланиши мумкин.
MongoDB да харитани қисқартириш операцияси натижаларни тўпламга ёзиши ёки натижаларни сатрга қайтариши мумкин. Агар сиз тўпламга харитани қисқартириш натижасини ёзсангиз, олдинги натижалар билан алмаштириш, бирлаштириш ёки янги натижаларни бирлаштирадиган бир хил кириш тўпламида харитани қисқартириш бўйича кейинги операцияларни бажаришингиз мумкин. Мисолларни Incremental Map-Reduce да бажариш мумкин.
Харитани қисқартириш операцияси натижаларини inline га қайтаришда натижалар ҳужжатлари ЖСОН ҳужжат ҳажми чегарасида бўлиши керак, бу ҳозирда 16 мегабайт. Харитани қисқартириш операцияларига чекловлар ва чекловлар ҳақида қўшимча маълумот олиш учун mapReduce маълумот саҳифасига мурожаат қилиш керак.
MongoDB тақсимланган тўпламларда харитани қисқартириш операцияларини қўллаб-қувватлайди. Бироқ, 4.2 версиясидан бошлаб, MongoDB янги тақсимланган тўпламни яратиш ва харитани қисқартириш опсиясидан фойдаланиш учун харитани қисқартириш опсиясини бекор қилди. Sharded тўпламга чиқариш учун аввал тақсимланга тўпламни яратиш керак. MongoDB 4.2, шунингдек, мавжуд тақсмланган тўпламни алмаштиришни ҳам бекор қилади.
Бир вақтнинг ўзида харита ва харитани қисқартириш учун қуйига функциялар ишлатилади:
QtConcurrent::map(), QtConcurrent::mapped() va QtConcurrent:: mappedReduced() funksiyalari QList kabi ketma-ketlikdagi elementlarda parallel ravishda hisoblashlarni amalga oshiradi. QtConcurrent::map() ketma-ketlikni joyida o'zgartiradi, QtConcurrent ::mapped() o'zgartirilgan tarkibni o'z ichiga olgan yangi ketma-ketlikni qaytaradi va QtConcurrent ::mappedReduced() bitta natijani qaytaradi. Bu funktsiyalar Qt Concurrent ramkasining bir qismidir. Yuqoridagi funktsiyalarning har biri QFuture o'rniga yakuniy natijani qaytaradigan blokirovka variantiga ega. Ularni asenkron variantlar bilan bir xil tarzda ishlatish mumkin.
QList < QImage > tasvirlar = . . . ;
// Har bir qo'ng'iroq butun operatsiya tugaguncha bloklanadi. QList < QImage > QFuture = QtConcurrent :: blockingMapped ( tasvirlar , masshtabli );

Download 80.3 Kb.

Do'stlaringiz bilan baham:
  1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling