Apache cho'chqasi - Apache Pig

Apache cho'chqasi
Apache cho'chqa logotipi
Tuzuvchi (lar)Apache dasturiy ta'minot fondi, Yahoo tadqiqotlari
Dastlabki chiqarilish2008 yil 11 sentyabr; 12 yil oldin (2008-09-11)
Barqaror chiqish
0.17.0 / 2017 yil 19-iyun; 3 yil oldin (2017-06-19)
Ombor Buni Vikidatada tahrirlash
Operatsion tizimMicrosoft Windows, OS X, Linux
TuriMa'lumotlarni tahlil qilish
LitsenziyaApache litsenziyasi 2.0
Veb-saytcho'chqa.apache.org

Apache cho'chqasi[1]ishlaydigan dasturlarni yaratish uchun yuqori darajadagi platformadir Apache Hadoop. Ushbu platforma uchun til deyiladi Cho'chqa lotin.[1] Cho'chqa Hadoop ishlarini bajarishi mumkin MapReduce, Apache Tez, yoki Apache uchquni.[2] Cho'chqa lotin tilidan dasturlashni abstrakt qiladi Java MapReduce idiomini MapReduce dasturini yuqori darajadagi, shunga o'xshash dasturiy ta'minotga aylantiradigan yozuvga aylantiring SQL uchun relyatsion ma'lumotlar bazasini boshqarish tizimlari. Cho'chqa lotin yordamida kengaytirilgan bo'lishi mumkin foydalanuvchi tomonidan belgilangan funktsiyalar (UDFs) foydalanuvchi Java-da yozishi mumkin, Python, JavaScript, Yoqut yoki Groovy[3] va keyin to'g'ridan-to'g'ri tildan qo'ng'iroq qiling.

Tarix

Apache cho'chqasi dastlab edi[4] da ishlab chiqilgan Yahoo tadqiqotlari 2006 yil atrofida tadqiqotchilar uchun MapReduce ish joylarini yaratish va bajarishning odatiy usuli juda katta ma'lumotlar to'plamlarida bo'lishi kerak. 2007 yilda,[5] ichiga ko'chirildi Apache dasturiy ta'minot fondi.

VersiyaAsl chiqish sanasiOxirgi versiyaIshlab chiqarilish sanasi[6]
Eski versiyasi, endi saqlanmaydi: 0.12008-09-110.1.12008-12-05
Eski versiyasi, endi saqlanmaydi: 0.22009-04-080.2.02009-04-08
Eski versiyasi, endi saqlanmaydi: 0.32009-06-250.3.02009-06-25
Eski versiyasi, endi saqlanmaydi: 0.42009-08-290.4.02009-08-29
Eski versiyasi, endi saqlanmaydi: 0.52009-09-290.5.02009-09-29
Eski versiyasi, endi saqlanmaydi: 0.62010-03-010.6.02010-03-01
Eski versiyasi, endi saqlanmaydi: 0.72010-05-130.7.02010-05-13
Eski versiyasi, endi saqlanmaydi: 0.82010-12-170.8.12011-04-24
Eski versiyasi, endi saqlanmaydi: 0.92011-07-290.9.22012-01-22
Eski versiyasi, endi saqlanmaydi: 0.102012-01-220.10.12012-04-25
Eski versiyasi, endi saqlanmaydi: 0.112013-02-210.11.12013-04-01
Eski versiyasi, endi saqlanmaydi: 0.122013-10-140.12.12014-04-14
Eski versiyasi, endi saqlanmaydi: 0.132014-07-040.13.02014-07-04
Eski versiyasi, endi saqlanmaydi: 0.142014-11-200.14.02014-11-20
Eski versiyasi, endi saqlanmaydi: 0.152015-06-060.15.02015-06-06
Eski versiyasi, endi saqlanmaydi: 0.162016-06-080.16.02016-06-08
Amaldagi barqaror versiya: 0.172017-06-190.17.02017-06-19
Afsona:
Eski versiya
Eski versiyasi, hanuzgacha saqlanib kelinmoqda
Oxirgi versiya
Eng so'nggi oldindan ko'rish versiyasi
Kelajakda chiqarilishi

Misol

Quyida "So'zlarni hisoblash "cho'chqa lotin tilidagi dastur:

 kirish_ chiziqlari = YUK '/ tmp / Internetdagi barcha sahifalarning nusxasi' AS (qator:chararray);  - Har bir satrdan so'zlarni chiqarib oling va ularni cho'chqa sumkasiga soling - ma'lumotlar turi, keyin har bir qatorda bitta so'z olish uchun sumkani tekislang so'zlar = HAR BIRIGA kirish_ chiziqlari BOSHLASH YO'Q(TOKENIZE(chiziq)) AS so'z; - faqat bo'sh joy bo'lgan barcha so'zlarni filtrlang filtrlangan_sozlar = FILTRE so'zlar BILAN so'z O'YINLAR " w +";  - har bir so'z uchun guruh yaratish word_groups = GURUH filtrlangan_sozlar BILAN so'z; - har bir guruhdagi yozuvlarni hisoblash word_count = HAR BIRIGA word_groups BOSHLASH COUNT(filtrlangan_sozlar) AS hisoblash, guruh AS so'z; - yozuvlarni hisoblash bo'yicha buyurtma qilish order_word_count = Buyurtma word_count BILAN hisoblash DESC; DO'KON order_word_count ICHIGA '/ tmp / Internetdagi so'zlar soni';

Yuqoridagi dastur Internetdagi barcha veb-sahifalar kabi ma'lumotlar to'plamidagi so'zlar sonini hisoblash uchun Hadoop klasteridagi bir nechta mashinalarga tarqatilishi mumkin bo'lgan parallel bajariladigan vazifalarni ishlab chiqaradi.

Cho'chqa va boshqalar SQL

SQL, Pig bilan taqqoslaganda

  1. ichki munosabat modeliga ega,
  2. foydalanadi dangasa baho,
  3. foydalanadi chiqarib olish, o'zgartirish, yuklash (ETL),
  4. a davomida istalgan nuqtada ma'lumotlarni saqlashga qodir quvur liniyasi,
  5. e'lon qiladi ijro rejalari,
  6. quvur oqimining bo'linishini qo'llab-quvvatlaydi va shu bilan ish oqimlarini davom ettirishga imkon beradi DAGlar qat'iy ketma-ketlikdagi quvur liniyalari o'rniga.

Boshqa tomondan, bu bahs qilingan JBMlar ma'lumotlar yuklangandan so'ng MapReduce tizimidan sezilarli darajada tezroq, ammo ma'lumotlar bazasi tizimlarida ma'lumotlarni yuklash ancha uzoq davom etadi. Bundan tashqari, u bahslashdi RDBMSlar ustunlarni saqlash, siqilgan ma'lumotlar bilan ishlash, ma'lumotlarga samarali tasodifiy kirish uchun indekslar va tranzaktsiyalar darajasidagi xatolarga bardoshlik uchun qutini qo'llab-quvvatlashni taklif eting.[7]

Cho'chqa lotincha protsessual va SQL o'rniga, tabiiy ravishda quvur liniyasi paradigmasiga juda mos keladi deklarativ. SQL-da foydalanuvchilar ikkita jadvaldagi ma'lumotlarni birlashtirishi kerakligini belgilashlari mumkin, lekin qaysi dasturni birlashtirishi kerak emas (JOIN-ning SQL-da bajarilishini belgilashingiz mumkin, shuning uchun "... ko'plab SQL-ilovalar uchun so'rov yozuvchisi etarli ma'lumotga ega bo'lmasligi mumkin tegishli qo'shilish algoritmini ko'rsatish uchun ma'lumotlar yoki etarli tajriba. "). Lotin cho'chqasi foydalanuvchilarga skriptni bajarishda bir nechta usullar bilan amalga oshiriladigan dastur yoki amalga oshirilish aspektlarini ko'rsatishga imkon beradi.[8] Aslida Pig Latin dasturlashi so'rovlarni bajarish rejasini belgilashga o'xshaydi, bu dasturchilarga ma'lumotlarni qayta ishlash vazifasi oqimini aniq nazorat qilishni osonlashtiradi.[9]

SQL bitta natija beradigan so'rovlarga yo'naltirilgan. SQL daraxtlarni tabiiy ravishda boshqaradi, ammo ma'lumotlarni qayta ishlash oqimini ajratish va har bir sub-oqimga turli xil operatorlarni qo'llash mexanizmlari mavjud emas. Cho'chqa lotin yozuvida a tasvirlangan yo'naltirilgan asiklik grafik (DAG) quvur liniyasi o'rniga.[8]

Pig Latin-ning foydalanuvchi kodini quvur liniyasining istalgan nuqtasiga kiritish qobiliyati quvurni rivojlantirish uchun foydalidir. Agar SQL ishlatilsa, avval ma'lumotlar bazasiga ma'lumotlar kiritilishi kerak, so'ngra tozalash va o'zgartirish jarayoni boshlanishi mumkin.[8]

Shuningdek qarang

Adabiyotlar

  1. ^ a b "Hadoop: Apache cho'chqasi". Olingan 2-sentabr, 2011.
  2. ^ "[PIG-4167] Sparkda cho'chqaning dastlabki tatbiq etilishi - ASF JIRA". issues.apache.org. Olingan 2018-12-29.
  3. ^ "Cho'chqa foydalanuvchisi tomonidan belgilangan funktsiyalar". Olingan 3-may, 2013.
  4. ^ "Yahoo Blogi: Cho'chqa - Hadoop uchun yuqori darajadagi samarali tilga yo'l". Arxivlandi asl nusxasi 2016 yil 3 fevralda. Olingan 23 may, 2015.
  5. ^ "Apache Software Foundation-dagi inkubatsiya cho'chqasi". Arxivlandi asl nusxasi 2016 yil 3 fevralda. Olingan 23 may, 2015.
  6. ^ "Apache cho'chqasi chiqarildi". Apache. Olingan 2019-03-13.
  7. ^ "ACM aloqasi: MapReduce va parallel ma'lumotlar bazalari: do'stlar yoki dushmanlarmi?" (PDF). Arxivlandi asl nusxasi (PDF) 2015 yil 1-iyulda. Olingan 23 may, 2015.
  8. ^ a b v "Yahoo Pig Development Team: Ma'lumotlarni qayta ishlash quvurlarini qurish uchun Lotin va SQL tillarini taqqoslash". Arxivlandi asl nusxasi 2015 yil 30 mayda. Olingan 23 may, 2015.
  9. ^ "ACM SigMod 08: Cho'chqa lotincha: Ma'lumotlarni qayta ishlash uchun chet el tili" (PDF). Olingan 23 may, 2015.

Tashqi havolalar