Ma'lumotlarga asoslangan dasturlash tili - Data-centric programming language - Wikipedia

Ma'lumotlarga asoslangan dasturlash tili dasturlash tillarining toifasini belgilaydi, bu erda asosiy funktsiya ma'lumotlarni boshqarish va boshqarishdir. Ma'lumotlarga yo'naltirilgan dasturlash tili to'plamlar, jadvallar, ro'yxatlar va boshqa ma'lumotlar tuzilmalari va ma'lumotlar bazalarida saqlangan ma'lumotlarga kirish uchun va dasturlash dasturi tomonidan talab qilinadigan ma'lumotlarni aniq manipulyatsiya qilish va o'zgartirish uchun ichki ishlov berish primitivlarini o'z ichiga oladi. Ma'lumotlarga asoslangan dasturlash tillari odatda deklarativ va ko'pincha ma'lumot oqimiga yo'naltirilgan va kerakli ishlov berish natijasini aniqlang; ishlov berishni amalga oshirish uchun zarur bo'lgan aniq ishlov berish bosqichlari til kompilyatoriga qoldiriladi. The SQL relyatsion ma'lumotlar bazasi tili deklarativ, ma'lumotlarga asoslangan tilning namunasidir. Deklarativ, ma'lumotlarga asoslangan dasturlash tillari uchun juda mos keladi ma'lumotni talab qiladigan hisoblash ilovalar.

Fon

Ning tez o'sishi Internet va Butunjahon tarmog'i Internetda juda ko'p miqdordagi ma'lumotlarga va ehtiyojga olib keldi Katta ma'lumotlar ishlov berish qobiliyatlari. Biznes va davlat tashkilotlari katta miqdordagi ikkala tuzilgan va tuzilmagan ishlov berish, tahlil qilish va bog'lash kerak bo'lgan ma'lumotlar.[1] Ushbu katta hajmdagi ma'lumotlarni saqlash, boshqarish, ularga kirish va qayta ishlash bu ma'lumotlarni qidirish, tahlil qilish, qazib olish va tasavvur qilish uchun ehtiyojlarni qondirish uchun asosiy ehtiyoj va ulkan vazifani anglatadi.[2] Ma'lumotlarga asoslangan deklarativ tillar ushbu muammolarni tobora ko'paytirmoqda, chunki ma'lumotlarga e'tibor qaratish bu muammolarni ifodalashni ancha soddalashtiradi.[3]

Kabi kompyuter tizimining arxitekturalari Hadoop va HPCC Parallel dasturlarni qo'llab-quvvatlashi mumkin bo'lgan ma'lumotlar terabayt va petabayt miqyosida ma'lumotlarni qayta ishlash talablari uchun potentsial echimdir ma'lumotni talab qiladigan hisoblash.[4][5] Big Data muammolarini hal qilish uchun odatda tovar uskunalari klasterlaridan foydalaniladi.[6] Big Data dasturlari va ma'lumotni intensiv hisoblash uchun asosiy muammolar[7] o'sib borayotgan ma'lumotlar hajmini boshqarish va qayta ishlash, amaliy, o'z vaqtida qo'llaniladigan dasturlarni qo'llab-quvvatlash uchun ma'lumotlarni tahlil qilish bilan bog'liq tsikllarni sezilarli darajada qisqartirish va juda katta miqdordagi ma'lumotlarni qidirish va qayta ishlash uchun ko'lamini oshiradigan yangi algoritmlarni ishlab chiqish. Milliy Ilmiy Jamg'arma ma'lumotlar intensiv hisoblash muammolari bilan bog'liq masalalarni aniqladi, masalan dasturlash abstraktsiyalari, shu jumladan modellar, tillar va algoritmlar, bu ma'lumotlarni parallel ravishda qayta ishlashning tabiiy ifodasini beradi.[8] Deklarativ, ma'lumotlarga asoslangan dasturlash tillari ushbu muammolar sinfiga juda mos keladi.

Ma'lumotlarga yo'naltirilgan dasturlash tillari dasturlarning ma'lumotlar ustida ishlashning yuqori darajalari bo'yicha ifodalanadigan ishlov berish yondashuvini ta'minlaydi va ish vaqti tizimi rejalashtirish, bajarish, yuklarni muvozanatlash, aloqa va kompyuter klasteri bo'ylab dasturlar va ma'lumotlarning harakatini shaffof boshqaradi. .[9] Dasturlashning abstraktsiyasi va til vositalari qayta ishlashni ma'lumotlar oqimlari va transformatsiyalar shaklida ifodalashga imkon beradi, bu ma'lumotlar saralash kabi umumiy manipulyatsiya algoritmlarining umumiy kutubxonalarini o'z ichiga oladi.

Deklarativ Ma'lumotlarga asoslangan dasturlash tillari tabiatan tarqatilgan hisoblashning turli shakllariga, shu jumladan klasterlar va ma'lumotlar tarmoqlari va bulutli hisoblashlarga moslashadi.[10] Deklarativ, ma'lumotlarga asoslangan dasturlash tillaridan foydalanish nafaqat yangi hisoblash qobiliyatiga moslashishni anglatadi, balki ma'lumotlarni tahlil qilish va dasturlarni loyihalash jarayonining o'zgarishini ham taklif qiladi.[11]

Ma'lumotlarga asoslangan til misollari

SQL eng yaxshi ma'lum bo'lgan deklarativ, ma'lumotlarga asoslangan dasturlash tili bo'lib, 1980-yillardan beri qo'llanilib kelinmoqda va relyatsion ma'lumotlar bazalarida foydalanish uchun amalda standartga aylandi. Biroq, turli xil yangi tizim arxitekturalari va tegishli dasturlash tillari amalga oshirildi ma'lumotni talab qiladigan hisoblash, Big Data dasturlari va keng ko'lamli ma'lumotlarni tahlil qilish dasturlari. Ma'lumotlarning o'sishining aksariyati tuzilmaviy shakldagi ma'lumotlar bilan[12] va ma'lumotlarning yanada moslashuvchan modellari bilan ishlashning yangi paradigmalariga ehtiyoj sezildi. Google tomonidan kashf etilgan MapReduce arxitekturasini o'z ichiga olgan bir qator echimlar paydo bo'ldi va endi Yahoo, Facebook va boshqalar tomonidan ishlatiladigan Hadoop deb nomlangan ochiq manbali dastur va LexisNexis Risk Solutions tomonidan taqdim etilgan HPCC tizim arxitekturasi mavjud.

Hadoop cho'chqasi

1-rasm: Namunaviy cho'chqa lotin dasturi [13]
2-rasm: Cho'chqa dasturining MapReduce-ga tarjimasi[13]

Hadoop - bu Apache Software Foundation tomonidan homiylik qilingan (manba) ochiq kodli dasturiy ta'minot loyihasi.http://www.apache.org ) qaysi MapReduce arxitekturasini amalga oshiradi. Hadoop ijrosi muhiti Hadoop MapReduce arxitekturasi yordamida ishlashga mo'ljallangan qo'shimcha tarqatilgan ma'lumotlarni qayta ishlash imkoniyatlarini qo'llab-quvvatlaydi. Bunga yuqori darajadagi ma'lumotlar oqimi dasturlash tili va ma'lumotni intensiv hisoblash uchun ijro doirasi - Pig kiradi. Cho'chqa Yahoo! da ishlab chiqilgan! Hadoop MapReduce muhitidan foydalanganda ma'lumotlarni tahlil qilish dasturlari uchun aniq ma'lumotlarga asoslangan til yozuvlarini taqdim etish va dasturchilarning samaradorligini oshirish va rivojlanish davrlarini kamaytirish. Cho'chqa dasturlari, agar ijro etish muhitida kerak bo'lsa, avtomatik ravishda MapReduce dasturlarining ketma-ketligiga tarjima qilinadi. Cho'chqa tildagi ma'lumotlarni yuklash, saqlash, filtrlash, guruhlash, ko'paytirish, buyurtma qilish, saralash, yig'ish va operatsiyalarni birlashtirish uchun imkoniyatlarni taqdim etadi.[13] 1-rasmda cho'chqa dasturining namunasi ko'rsatilgan va 2-rasmda bu MapReduce operatsiyalari seriyasiga qanday tarjima qilinganligi ko'rsatilgan.

HPCC ECL

3-rasm: JOIN ishlashi uchun ECL namunasi sintaksisi

LexisNexis Risk Solutions-ning HPCC ma'lumotlarini intensiv hisoblash platformasi yangi yuqori darajadagi deklarativ, ma'lumotlarga asoslangan dasturlash tilini o'z ichiga oladi EChL. ECL dasturchiga ma'lumotlarni qayta ishlash natijasi qanday bo'lishi kerakligini va natijaga erishish uchun zarur bo'lgan ma'lumotlar oqimlari va transformatsiyalarini aniqlashga imkon beradi. ECL tili ma'lumotlarni aniqlash, filtrlash, ma'lumotlarni boshqarish va ma'lumotlarni o'zgartirish uchun keng imkoniyatlarni o'z ichiga oladi va foydalanuvchi tomonidan aniqlangan o'zgartirish funktsiyalarini o'z ichiga olishi mumkin bo'lgan ma'lumotlar to'plamlaridagi yozuvlar ustida ishlash uchun o'rnatilgan funktsiyalarning keng to'plamini taqdim etadi. ECL dasturlari optimallashtirilgan C ++ manba kodida to'planadi, keyinchalik bajariladigan kodga kompilyatsiya qilinadi va ishlov berish klasterining tugunlariga tarqatiladi. ECL ma'lumotlar tasvirini algoritmni amalga oshirish bilan birlashtiradi va bu so'rovlar tilining ham, parallel ma'lumotlarni qayta ishlash tilining ham birlashmasidir.

Shakl 5: NLP uchun ECL kod misoli
Shakl 4: ECL kodi misoli

ECL tarkibiga ma'lumotlarni o'zgartiradigan operatsiyalar kiradi, ular PROJECT, ITERATE, ROLLUP, JOIN, COMBINE, FETCH, NORMALIZE, DENORMALIZE va PROCESS kabi barcha ma'lumotlar to'plamlari orqali ishlaydi. Masalan, JOIN operatsiyasi uchun belgilangan konvertatsiya qilish funktsiyasi ikkita yozuvni oladi, har bir ma'lumotlar bazasidan birlashtiriladi va yozuvlar juftligidagi maydonlarda har qanday operatsiyalarni bajarishi mumkin va natijaning yozuvlaridan birini butunlay boshqacha bo'lishi mumkin. yozuvlarni kiritish. ECL Language Reference Guide-dan JOIN operatsiyasi uchun sintaksis namunasi 3-rasmda keltirilgan. 4-rasmda 1-rasmda ko'rsatilgan Cho'chqa misol dasturi uchun ekvivalent ECL kodining namunasi ko'rsatilgan.

ECL dasturlash tili, shuningdek, uchun o'rnatilgan primitivlarni taqdim etadi Tabiiy tilni qayta ishlash (NLP) PATTERN bayonotlari va o'rnatilgan PARSE operatsiyalari bilan. PATTERN so'zlari mos keladigan naqshlarni, shu jumladan oddiy iboralarni aniqlashga imkon beradi va xom matn kabi tuzilmaydigan ma'lumotlardan ma'lumotlarni tahlil qilish uchun ishlatiladi. PATTERN iboralari murakkab tahlil operatsiyalarini bajarish uchun yoki dan grammatikalarni bajarish uchun birlashtirilishi mumkin Backus-Naur shakli (BNF) ta'riflari. PARSE operatsiyasi yozuv ichidagi ma'lum bir maydondagi yozuvlar to'plami bo'ylab ishlaydi, masalan, bu maydon matnli faylning butun satri bo'lishi mumkin. ECL tilining ushbu imkoniyatidan foydalanib, parallel ishlov berish shaklini amalga oshirish mumkin ma'lumot olish hujjat fayllari bo'yicha dasturlar va barcha turdagi tuzilmagan va yarim tuzilgan ma'lumotlar, shu jumladan XML asosidagi hujjatlar yoki veb-sahifalar. 5-rasmda NLP-ni o'z ichiga olgan log tahlil dasturida ishlatiladigan ECL kodining namunasi ko'rsatilgan.

Shuningdek qarang

Adabiyotlar

  1. ^ Bulutli hisoblash bo'yicha qo'llanma, A. M. Middlton tomonidan "Bulutli hisoblash uchun ma'lumotlar intensiv texnologiyalari". Bulutli hisoblash bo'yicha qo'llanma. Springer, 2010 yil.
  2. ^ "Ma'lumot bormi? Axborot asrida ma'lumotlarni saqlash bo'yicha qo'llanma "F. Berman tomonidan. ACM kommunikatsiyalari, 51-jild, 2008 yil 12-son, 50-66 betlar.
  3. ^ Data Centric Gambit, J. Hellerstayn tomonidan, 2008 yil.
  4. ^ L. S. Nyland, J. F. Prins, A. Goldberg va P. H. Mills tomonidan "Ma'lumotlarni parallel ravishda qo'llash uchun dizayn uslubiyati". Bulutli hisoblash bo'yicha qo'llanma. Springer, 2010 yil.
  5. ^ "Teraskal muammosi "D. Ravichandran, P. Pantel va E. Xovi tomonidan. Semantic Web uchun va undan olingan KDD seminarining materiallari, 2004 yil.
  6. ^ "BOOM: Ma'lumotlar markazida ma'lumotlar markazlashtirilgan dasturlash "P. Alvaro, T. Condie, N. Conway, K. Elmeleegy, J. Hellerstein va R. Sears tomonidan. Berkli shahridagi Kaliforniya universiteti elektrotexnika va kompyuter fanlari bo'limi, Texnik hisobot, 2009 yil.
  7. ^ "XXI asrda ma'lumotni intensiv hisoblash "I. Gorton, P. Grinfild, A. Szalay va R. Uilyams tomonidan. IEEE Computer, 41-jild, 2008 yil 4-son, 30-32 betlar.
  8. ^ Ma'lumotlarni intensiv hisoblash, NSF, 2009 yil.
  9. ^ Ma'lumotlarni intensiv ravishda kengaytiriladigan hisoblash, R. E. Bryant tomonidan, 2008 yil.
  10. ^ Bambuk: Ma'lumotlarga yo'naltirilgan, ko'p yadroli dasturiy ta'minotga yo'naltirilgan yondashuv, J. Chjou va B. Demskiy tomonidan. Dasturlash tillarini loyihalash va amalga oshirish, 2010 yil.
  11. ^ "Netezza arxitekturasi bilan ma'lumotlar markazida hisoblash "G. S. Devison, K. W. Boyack, R. A. Zacharski, S. C. Helmreich va J. R. Cowie tomonidan. Sandia National Laboratories, Texnik hisobot, 2006 yil.
  12. ^ J. F. Gants, D. Reynsel, C. Chute, V. Shlichting, J. Makartur, S. Minton, J. Xheneti, A. Toncheva va A. Manfredizning "Kengayayotgan raqamli olam". IDC, Oq qog'oz, 2007 yil.
  13. ^ a b v Cho'chqa lotin: Ma'lumotlarni qayta ishlash uchun chet el tili emas Arxivlandi 2011-07-20 da Orqaga qaytish mashinasi, C. Olston, B. Rid, U. Srivastava, R. Kumar va A. Tomkins tomonidan. Stenford universiteti, 2008 yil.