Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Ang anumang operasyon na may malaking data ay nangangailangan ng malaking kapangyarihan sa pag-compute. Ang isang karaniwang paglipat ng data mula sa isang database patungo sa Hadoop ay maaaring tumagal ng mga linggo o nagkakahalaga ng kasing dami ng isang pakpak ng eroplano. Ayaw mong maghintay at gumastos? Balansehin ang load sa iba't ibang platform. Ang isang paraan ay ang pushdown optimization.

Tinanong ko si Aleksey Ananyev, isang nangungunang tagapagsanay sa Russia para sa pagbuo at pangangasiwa ng mga produkto ng Informatica, na pag-usapan ang tampok na pushdown optimization sa Informatica Big Data Management (BDM). Natutunan mo na ba kung paano magtrabaho sa mga produkto ng Informatica? Malamang na si Aleksey ang nagsabi sa iyo ng mga pangunahing kaalaman ng PowerCenter at ipinaliwanag kung paano bumuo ng mga pagmamapa.

Alexey Ananiev, Pinuno ng Pagsasanay DIS Group

Ano ang pushdown?

Marami sa inyo ay pamilyar na sa Informatica Big Data Management (BDM). Nagagawa ng produkto na isama ang malaking data mula sa iba't ibang mga mapagkukunan, ilipat ito sa pagitan ng iba't ibang mga system, nagbibigay ng madaling pag-access dito, pinapayagan kang i-profile ito, at marami pa.
Sa tamang mga kamay, ang BDM ay maaaring gumawa ng mga kababalaghan: ang mga gawain ay matatapos nang mabilis at may kaunting mapagkukunan sa pag-compute.

Gusto mo rin ba yun? Matutunan kung paano gamitin ang feature na pushdown ng BDM para maikalat ang computing workload sa iba't ibang platform. Binibigyang-daan ka ng teknolohiyang pushdown na gawing script ang pagmamapa at piliin ang kapaligiran kung saan tatakbo ang script na ito. Ang posibilidad ng naturang pagpipilian ay nagpapahintulot sa iyo na pagsamahin ang mga lakas ng iba't ibang mga platform at makamit ang kanilang pinakamataas na pagganap.

Upang i-configure ang kapaligiran ng pagpapatupad ng script, kailangan mong piliin ang uri ng pushdown. Ang script ay maaaring ganap na patakbuhin sa Hadoop o bahagyang ibinahagi sa pagitan ng pinagmulan at target. Mayroong 4 na posibleng uri ng pushdown. Ang pagmamapa ay hindi maaaring gawing script (katutubo). Maaaring isagawa ang pagmamapa hangga't maaari sa pinagmulan (pinagmulan) o ganap sa pinagmulan (buo). Ang pagmamapa ay maaari ding gawing Hadoop script (wala).

Pag-optimize ng pushdown

Ang nakalistang 4 na uri ay maaaring pagsamahin sa iba't ibang paraan - upang ma-optimize ang pushdown para sa mga partikular na pangangailangan ng system. Halimbawa, kadalasan ay mas angkop na kunin ang data mula sa isang database gamit ang sarili nitong mga kakayahan. At upang ibahin ang anyo ng data - sa pamamagitan ng mga puwersa ng Hadoop, upang ang database mismo ay hindi ma-overload.

Isaalang-alang natin ang kaso kapag ang pinagmulan at ang destinasyon ay nasa database, at ang platform para sa pagpapatupad ng mga pagbabago ay maaaring piliin: depende sa mga setting, ito ay Informatica, ang database server, o Hadoop. Ang ganitong halimbawa ay pinakatumpak na mauunawaan ang teknikal na bahagi ng pagpapatakbo ng mekanismong ito. Naturally, sa totoong buhay, ang sitwasyong ito ay hindi lumitaw, ngunit ito ay pinakaangkop para sa pagpapakita ng pag-andar.

Kumuha tayo ng pagmamapa upang basahin ang dalawang talahanayan sa isang database ng Oracle. At hayaang maisulat ang mga resulta ng pagbabasa sa isang talahanayan sa parehong database. Ang mapping scheme ay magiging ganito:

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Sa anyo ng pagmamapa sa Informatica BDM 10.2.1, ganito ang hitsura:

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

uri ng pushdown - katutubong

Kung pipiliin namin ang pushdown na katutubong uri, ang pagmamapa ay isasagawa sa Informatica server. Babasahin ang data mula sa Oracle server, ililipat sa Informatica server, babaguhin doon at ililipat sa Hadoop. Sa madaling salita, makakakuha tayo ng normal na proseso ng ETL.

uri ng pushdown-source

Kapag pumipili ng uri ng pinagmulan, nakakakuha kami ng pagkakataong ipamahagi ang aming proseso sa pagitan ng database server (DB) at Hadoop. Kapag ang proseso ay naisakatuparan sa setting na ito, ang mga query ay ipapadala sa database upang kumuha ng data mula sa mga talahanayan. At ang natitira ay gagawin bilang mga hakbang sa Hadoop.
Magiging ganito ang execution scheme:

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Nasa ibaba ang isang halimbawa ng pagse-set up ng runtime environment.

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Sa kasong ito, isasagawa ang pagmamapa sa dalawang hakbang. Sa mga setting nito, makikita natin na ito ay naging isang script na ipapadala sa pinagmulan. Bukod dito, ang pagsasama ng mga talahanayan at pagbabago ng data ay isasagawa sa anyo ng isang na-override na query sa pinagmulan.
Sa larawan sa ibaba, nakikita namin ang na-optimize na pagmamapa sa BDM, at ang muling tinukoy na query sa pinagmulan.

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Ang papel ng Hadoop sa pagsasaayos na ito ay mababawasan sa pamamahala sa daloy ng data - pagsasaayos sa kanila. Ang resulta ng query ay ipapadala sa Hadoop. Matapos makumpleto ang pagbabasa, ang file mula sa Hadoop ay isusulat sa receiver.

uri ng pushdown - puno

Kapag pinili mo ang buong uri, ang pagmamapa ay ganap na magiging isang query sa database. At ang resulta ng query ay ipapadala sa Hadoop. Ang isang diagram ng naturang proseso ay ipinakita sa ibaba.

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Ang isang halimbawang setup ay ipinapakita sa ibaba.

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Bilang resulta, makakakuha tayo ng na-optimize na pagmamapa na katulad ng nauna. Ang pagkakaiba lamang ay ang lahat ng lohika ay inilipat sa receiver sa anyo ng muling pagtukoy sa pagpasok nito. Ang isang halimbawa ng isang na-optimize na pagmamapa ay ipinapakita sa ibaba.

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Dito, tulad ng sa nakaraang kaso, gumaganap ang Hadoop bilang isang konduktor. Ngunit narito ang pinagmulan ay binabasa sa kabuuan nito, at pagkatapos ay ang lohika sa pagproseso ng data ay isinasagawa sa antas ng tatanggap.

Ang uri ng pushdown ay null

Well, ang huling opsyon ay ang uri ng pushdown, kung saan ang aming pagmamapa ay magiging isang Hadoop script.

Ang na-optimize na pagmamapa ay magiging ganito na ngayon:

Paano ilipat, i-upload at isama ang napakalaking data nang mura at mabilis? Ano ang pushdown optimization?

Dito, ang data mula sa mga source file ay unang babasahin ng Hadoop. Pagkatapos, sa sarili nitong paraan, pagsasamahin ang dalawang file na ito. Pagkatapos nito, ang data ay mako-convert at mai-upload sa database.

Ang pag-unawa sa mga prinsipyo ng pushdown optimization, maaari mong ayusin ang maraming proseso ng pagtatrabaho sa malaking data nang napakabisa. Kaya, kamakailan lamang, isang malaking kumpanya ang nag-unload ng malaking data mula sa storage papunta sa Hadoop sa loob lamang ng ilang linggo, na dati nang nakolekta sa loob ng ilang taon.

Pinagmulan: www.habr.com

Magdagdag ng komento