Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

Noho mākou i kahi manawa kupaianaha hiki iā ʻoe ke hoʻopili wikiwiki a maʻalahi i nā mea hana open-source i mākaukau, hoʻonohonoho iā lākou me kou "hoʻopau ʻia ka ʻike" e like me ka ʻōlelo aʻoaʻo a stackoverflow, me ka ʻole o ka ʻimi ʻana i nā "huahelu lehulehu", a hoʻomaka. lakou i ka hana kalepa. A i ka wā e pono ai ʻoe e hoʻonui a hoʻonui a hoʻihoʻi paha kekahi i nā mīkini ʻelua - ʻike ʻoe ua hoʻomaka ʻia kekahi ʻano moeʻuhane maikaʻi ʻole i ka ʻoiaʻiʻo, ua lilo nā mea āpau i mea paʻakikī ma mua o ka ʻike ʻia, ʻaʻohe mea e hoʻi i hope, ʻaʻole maopopo ka wā e hiki mai ana. a ʻoi aku ka palekana, ma mua o ka hoʻolālā ʻana, hoʻohua i ka nalo a hana i ka tiiki.

ʻAʻole ia no ka mea ʻoi aku ka ʻike o nā hoa hana, me ko lākou mau poʻo i uhi ʻia me nā pōpoki a no laila ua hina, e noʻonoʻo ana i ka hoʻokomo wikiwiki ʻana o nā pūʻulu o nā "containers" i "cubes" ma nā kikowaena o nā kikowaena i "nā ʻōlelo ʻano" me ke kākoʻo i kūkulu ʻia. asynchronous non-blocking I/O, minoʻaka haʻahaʻa . A hoʻomau lākou i ka heluhelu hou ʻana i ka "man ps", e komo i loko o ka "nginx" source code a hiki i ke koko o ko lākou mau maka, a kākau, kākau, kākau i nā hōʻike ʻāpana. Ua ʻike nā hoa hana e hiki mai ana ka mea hoihoi loa i ka wā e hoʻopaʻa ʻia ai "kēia mau mea" i kekahi lā i ka pō i ka Pōʻalima. A e kōkua wale ʻia lākou e ka ʻike hohonu o ke ʻano o ka unix, ka papa helu mokuʻāina TCP/IP i hoʻopaʻa ʻia a me nā algorithms sorting-search algorithms. No ka hoʻihoʻi ʻana i ka ʻōnaehana i ke ola e like me ke kani ʻana o nā chimes.

ʻAe, ua pilikia iki au, akā ke manaʻo nei au ua hiki iaʻu ke haʻi i ke kūlana o ka manaʻo.
I kēia lā, makemake wau e kaʻana like i kā mākou ʻike i ka hoʻohana ʻana i kahi waihona maʻalahi a maʻalahi hoʻi no DataLake, kahi e hoʻonā ai i ka hapa nui o nā hana analytical i loko o ka hui no nā māhele ʻokoʻa like ʻole.

I kekahi manawa i hala aku nei, ua ʻike mākou ua makemake nui nā ʻoihana i nā hua o nā huahana a me nā ʻenehana loea (ʻaʻole e haʻi i ka icing ma ke ʻano o ka mīkini aʻo) a no ka hoʻomaopopo ʻana i nā ʻano a me nā pilikia - pono mākou e hōʻiliʻili a nānā. ʻoi aku ka nui o nā ana.

ʻIkepili ʻenehana kumu ma Bitrix24

I kekahi mau makahiki i hala aku nei, i ka manawa like me ka hoʻomaka ʻana o ka lawelawe ʻo Bitrix24, ua hoʻolilo mākou i ka manawa a me nā kumuwaiwai i ka hana ʻana i kahi kahua loiloi maʻalahi a hilinaʻi e kōkua koke i nā pilikia i ka ʻoihana a hoʻolālā i ka pae aʻe. ʻOiaʻiʻo, ua aʻo ʻia e lawe i nā mea hana i mākaukau i maʻalahi a hiki ke hoʻomaopopo ʻia. ʻO ka hopena, ua koho ʻia nā nagios no ka nānā ʻana a me ka munin no ka analytics a me ka ʻike. I kēia manawa, loaʻa iā mākou he mau kaukani o nā loiloi ma nagios, mau haneli o nā kiʻi ma munin, a hoʻohana maikaʻi kā mākou mau hoa hana i kēlā me kēia lā. Maikaʻi nā metric, maopopo nā kiʻi, ua hana pono ka ʻōnaehana no kekahi mau makahiki a ua hoʻohui pinepine ʻia nā hoʻokolohua hou a me nā kiʻi: ke hoʻokomo mākou i kahi lawelawe hou, hoʻohui mākou i nā hoʻokolohua a me nā kiʻi. Pōmaikaʻi iā ʻoe.

Manamana ma ka Pulse - ʻIkepili ʻenehana kiʻekiʻe

ʻO ka makemake e loaʻa ka ʻike e pili ana i nā pilikia "i ka wikiwiki" alakaʻi iā mākou i nā hoʻokolohua ikaika me nā mea hana maʻalahi a hoʻomaopopo - pinba a me xhprof.

Ua hoʻouna mai ʻo Pinba iā mākou i nā ʻikepili i nā ʻeke UDP e pili ana i ka wikiwiki o ka hana ʻana o nā ʻāpana o nā ʻaoʻao pūnaewele ma PHP, a hiki iā mākou ke ʻike ma ka pūnaewele i ka waihona MySQL (hele mai ʻo Pinba me kāna mīkini MySQL ponoʻī no ka hoʻopaʻa ʻana i ka hanana wikiwiki) kahi papa inoa pōkole o nā pilikia a pane i lakou. A ua ʻae ʻo xhprof iā mākou e hōʻiliʻili i nā kiʻi o ka hoʻokō ʻana i nā ʻaoʻao PHP lohi loa mai nā mea kūʻai aku a nānā i nā mea e hiki ke alakaʻi i kēia - me ka mālie, ka ninini kī a i ʻole kekahi mea ikaika.

I kekahi manawa i hala aku nei, ua hoʻopiha hou ʻia ka pahu hana me kahi mīkini maʻalahi a hoʻomaopopo ʻia e pili ana i ka algorithm reverse indexing, i hoʻokō pono ʻia i loko o ka hale waihona puke Lucene - Elastic/Kibana. ʻO ka manaʻo maʻalahi o ka hoʻopaʻa ʻana i nā palapala i loko o kahi kuhikuhi Lucene inverse e pili ana i nā hanana i loko o nā lāʻau a me ka huli wikiwiki ʻana ma o lākou me ka hoʻohana ʻana i ka mahele facet i lilo i mea pono loa.

ʻOiai ke ʻano ʻenehana o nā hiʻohiʻona ma Kibana me nā manaʻo haʻahaʻa haʻahaʻa e like me ka "bakeke" "e kahe ana i luna" a me ka ʻōlelo hou o ka algebra relational poina ʻole, ua hoʻomaka ka hāmeʻa e kōkua maikaʻi iā mākou i kēia mau hana:

  • ʻEhia mau hewa PHP i loaʻa i ka mea kūʻai Bitrix24 ma ka puka p1 i ka hola i hala a ʻo wai nā mea? Hoʻomaopopo, kala a hoʻoponopono koke.
  • ʻEhia mau kelepona wikiō i hana ʻia ma nā puka puka ma Kelemania i nā hola 24 i hala, me ke ʻano o ka maikaʻi a he mau pilikia paha me ke kahawai/network?
  • Pehea ka maikaʻi o ka hana o ka ʻōnaehana (kā mākou C extension no PHP), i hōʻuluʻulu ʻia mai ke kumu i ka hōʻano hou o ka lawelawe a ʻōwili ʻia i nā mea kūʻai aku, hana? Aia nā segfaults?
  • Ua kūpono anei ka ʻikepili o ka mea kūʻai aku i ka hoʻomanaʻo PHP? Aia kekahi mau hewa e pili ana i ka ʻoi aku o ka hoʻomanaʻo i hāʻawi ʻia i nā kaʻina hana: "out of memory"? E huli a hoʻokaʻawale.

Eia kekahi laʻana paʻa. ʻOiai ʻo ka hoʻāʻo ʻana a me ka nui o ka hoʻāʻo ʻana, ua loaʻa i ka mea kūʻai, me kahi hihia maʻamau ʻole a me ka ʻikepili hoʻokomo i hōʻino ʻia, ua loaʻa i kahi hewa hoʻonāukiuki a manaʻo ʻole ʻia, kani ke kani a hoʻomaka ke kaʻina hana o ka hoʻoponopono wikiwiki ʻana:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

Eia kekahi, ʻae ʻo kibana iā ʻoe e hoʻonohonoho i nā leka no nā hanana i ʻōlelo ʻia, a i ka manawa pōkole ua hoʻomaka ka mea hana i ka hui e hoʻohana ʻia e nā kaukani o nā limahana mai nā keʻena like ʻole - mai ke kākoʻo ʻenehana a me ka hoʻomohala ʻana i ka QA.

Ua maʻalahi ka hana o kekahi ʻoihana i loko o ka hui e nānā a ana - ma kahi o ka nānā ʻana i nā lāʻau ma nā kikowaena, pono ʻoe e hoʻonohonoho i nā lāʻau parsing i hoʻokahi manawa a hoʻouna iā lākou i ka puʻupuʻu elastic e leʻaleʻa, no ka laʻana, ka noʻonoʻo ʻana i ke kibana. dashboard ka helu o nā pipi poʻo ʻelua i kūʻai ʻia ma ka mīkini paʻi 3-D no ka mahina mahina hope loa.

ʻIkepili Pāʻoihana kumu

Ua ʻike ka poʻe āpau e hoʻomaka pinepine ana ka ʻikepili ʻoihana i nā ʻoihana me ka hoʻohana ikaika ʻana o, ʻae, Excel. Akā ʻo ka mea nui ʻaʻole ia e pau i laila. Hoʻohui pū ʻo Google Analytics ma ke ao i ka wahie i ke ahi - hoʻomaka koke ʻoe e maʻa i nā mea maikaʻi.

I loko o kā mākou hui hoʻomohala ʻoluʻolu, ma ʻaneʻi a ʻike ʻia nā "kauā" o ka hana ʻoi aku ka ikaika me ka ʻikepili nui aʻe. Ua hoʻomaka ka pono o nā hōʻike hohonu a me nā multifaceted i nā manawa a pau, a ma o ka hoʻoikaika ʻana o nā kāne mai nā keʻena like ʻole, i kekahi manawa i hala aku nei ua hoʻonohonoho ʻia kahi hopena maʻalahi a kūpono - kahi hui o ClickHouse a me PowerBI.

No ka manawa lōʻihi, ua kōkua nui kēia hoʻonā maʻalahi, akā ua hoʻomaka ka hoʻomaopopo ʻana ʻaʻole ʻo ClickHouse he ʻōpala a ʻaʻole hiki ke hoʻohenehene ʻia e like me ia.

Eia ka mea nui e hoʻomaopopo maikaʻi ʻo ClickHouse, e like me Druid, e like me Vertica, e like me Amazon RedShift (kahi i hoʻokumu ʻia ma nā postgres), he mau mīkini analytical i hoʻopaʻa ʻia no nā analytics kūpono (nā huina, aggregations, liʻiliʻi-kiʻekiʻe ma ke kolamu a me kekahi mau mea hiki ke hui pū ʻia. ), no ka mea hoʻonohonoho ʻia no ka mālama pono ʻana i nā kolamu o nā papa pili, ʻaʻole like me MySQL a me nā ʻikepili ʻē aʻe (laina-laina) i ʻike ʻia e mākou.

ʻO ka ʻoiaʻiʻo, ʻo ClickHouse kahi "database" ʻoi aku ka maʻalahi, ʻaʻole maʻalahi loa ka hoʻokomo ʻana i kēlā me kēia helu (ʻo ia ke ʻano o ka manaʻo, ua maikaʻi nā mea āpau), akā ʻoluʻolu nā ʻikepili a me kahi hoʻonohonoho o nā hana mana hoihoi no ka hana ʻana me ka ʻikepili. ʻAe, hiki iā ʻoe ke hana i kahi puʻupuʻu - akā hoʻomaopopo ʻoe ʻaʻole pololei loa ka hammering nails me kahi microscope a hoʻomaka mākou e ʻimi i nā hopena ʻē aʻe.

Ke koi no ka python a me nā mea kākau

He nui nā mea hoʻomohala o kā mākou hui e kākau i nā code kokoke i kēlā me kēia lā no 10-20 mau makahiki ma PHP, JavaScript, C#, C/C++, Java, Go, Rust, Python, Bash. Nui nō hoʻi nā luna hoʻomalu ʻōnaehana ʻike i ʻike i nā pōʻino kupaianaha ʻoi aku ma mua o hoʻokahi i kūpono ʻole i nā kānāwai o ka helu (no ka laʻana, i ka wā i luku ʻia ai ka hapa nui o nā disks i ka raid-10 e ka uila ikaika). Ma ia mau kūlana, no ka manawa lōʻihi ʻaʻole maopopo i ke ʻano o ka "python analyst". Ua like ʻo Python me PHP, ʻoi aku ka lōʻihi o ka inoa a ʻoi aku ka liʻiliʻi o nā ʻano mea hoʻololi i ka noʻonoʻo i loko o ke code kumu o ka mea unuhi. Eia naʻe, i ka hoʻokumu ʻia ʻana o nā hōʻike analytical, ua hoʻomaka ka poʻe hoʻomohala ʻike e hoʻomaopopo i ke koʻikoʻi o ka ʻike kūikawā i nā mea hana e like me numpy, pandas, matplotlib, seaborn.
ʻO ke kuleana koʻikoʻi, ʻoi aku paha, ua pāʻani ʻia e ka maule koke o nā limahana mai ka hui ʻana o nā huaʻōlelo "logistic regression" a me ka hōʻike ʻana i ka hōʻike maikaʻi ʻana i ka ʻikepili nui me ka hoʻohana ʻana, ʻae, ʻae, pyspark.

ʻO Apache Spark, kāna paradigm hana e pili pono ana i ka algebra relational, a ʻo kona hiki ke hana i ka manaʻo i nā mea hoʻomohala i maʻa iā MySQL e maopopo ai ka pono e hoʻoikaika i nā pae me nā mea loiloi ʻike i ka lā.

ʻO nā ho'āʻo hou aʻe o Apache Spark/Hadoop e haʻalele a me ka mea i hele ʻole e like me ka palapala

Eia naʻe, ua ʻike koke ʻia ʻaʻole pololei kekahi mea me Spark, a i ʻole pono e holoi maikaʻi i kou mau lima. Inā ua hana ʻia ka pahu Hadoop/MapReduce/Lucene e nā mea polokalamu ʻike kūpono, ʻike ʻia inā ʻoe e nānā pono i ke kumu kumu ma Java a i ʻole nā ​​manaʻo o Doug Cutting ma Lucene, a laila kākau koke ʻia ʻo Spark ma ka ʻōlelo exotic Scala, ʻo ia hoʻi. hoʻopaʻapaʻa loa mai ka manaʻo o ka hoʻomaʻamaʻa a ʻaʻole e ulu nei i kēia manawa. A ʻo ka hāʻule maʻamau o ka helu ʻana ma ka puʻupuʻu Spark ma muli o ka hana illogical a ʻaʻole maopopo loa me ka hoʻokaʻawale hoʻomanaʻo no ka hoʻohaʻahaʻa ʻana i nā hana (hiki i nā kī he nui i ka manawa hoʻokahi) ua hana i kahi halo a puni kahi mea e ulu ai. Hoʻohui ʻia, ua hoʻonui ʻia ke kūlana e ka nui o nā awa hāmama ʻē aʻe, nā faila pōkole e ulu ana ma nā wahi hiki ʻole ke hoʻomaopopo ʻia a me kahi poʻe hilinaʻi o ka hue - ka mea i loaʻa i nā luna hoʻonohonoho hoʻokahi manaʻo i ʻike maikaʻi ʻia mai ka wā kamaliʻi: huhū huhū (a i ʻole paha. pono lākou e holoi i ko lākou mau lima me ke kopa).

Ma muli o ka hopena, ua "ola" mākou i kekahi mau papahana analytical kūloko e hoʻohana ikaika nei iā Apache Spark (me Spark Streaming, Spark SQL) a me ka kaiaola Hadoop (a pēlā aku a pēlā aku). ʻOiai ʻo ka lōʻihi o ka manawa a mākou i aʻo ai e hoʻomākaukau a nānā pono iā "ia", a "ʻo ia" ua hoʻōki koke i ka hāʻule ʻana ma muli o nā loli o ke ʻano o ka ʻikepili a me ka ʻole o ka hashing RDD, ka makemake e lawe i kahi mea i mākaukau. , hoʻoponopono hou ʻia a lawelawe ʻia ma kekahi wahi o ke ao ua ikaika a ikaika. ʻO ia ka manawa i hoʻāʻo ai mākou e hoʻohana i ka hui kapua i mākaukau o Amazon Web Services - EMR a, ma hope, ho'āʻo e hoʻoponopono i nā pilikia me ka hoʻohana ʻana iā ia. ʻO EMR ʻo Apache Spark i hoʻomākaukau ʻia e Amazon me nā polokalamu hou mai ka kaiaolaola, e like me Cloudera/Hortonworks kūkulu.

ʻO ka mālama ʻana i nā faila Rubber no ka ʻikepili he pono wikiwiki

ʻAʻole makehewa ka ʻike o ka "kuʻi" Hadoop/Spark me ke ahi i nā wahi like ʻole o ke kino. ʻO ka pono e hana i kahi waihona waihona hoʻokahi, maʻalahi a hilinaʻi hoʻi e kūʻē i nā hemahema o ka lako a ma kahi e hiki ai ke mālama i nā faila i nā ʻano like ʻole mai nā ʻōnaehana like ʻole a hana i nā laʻana kūpono a me ka manawa kūpono no nā hōʻike mai kēia ʻikepili i lilo i mea nui. maopopo.

Ua makemake nō hoʻi au ʻaʻole i lilo ka hoʻonui ʻana i ka polokalamu o kēia kahua i kahi moeʻuhane o ka Makahiki Hou me ka heluhelu ʻana i nā ʻaoʻao Java he 20-ʻaoʻao a me ka nānā ʻana i nā lāʻau kikoʻī kilomika lōʻihi o ka pūʻulu me ka Spark History Server a me ke aniani hoʻonui backlit. Makemake au e loaʻa i kahi mea hana maʻalahi a maopopo ʻaʻole koi i ka luʻu maʻamau ma lalo o ka puʻupuʻu inā pau ka hoʻokō ʻana o ka noi MapReduce maʻamau o ka mea hoʻomohala i ka wā i hāʻule ʻole ai ka mea hana data hōʻemi mai ka hoʻomanaʻo ʻana ma muli o kahi ʻano algorithm partitioning data i koho maikaʻi ʻole ʻia.

He moho anei ʻo Amazon S3 no DataLake?

ʻO ka ʻike me Hadoop/MapReduce i aʻo mai iā mākou e pono mākou i kahi ʻōnaehana file scalable, hilinaʻi a me nā limahana scalable ma luna o ia mea, "e hele mai" kokoke i ka ʻikepili i ʻole e hoʻokele i ka ʻikepili ma luna o ka pūnaewele. Pono nā limahana e heluhelu i ka ʻikepili ma nā ʻano like ʻole, akā ʻoi aku ka maikaʻi o ka heluhelu ʻana i ka ʻike pono ʻole a hiki ke mālama i ka ʻikepili ma mua i nā ʻano kūpono no nā limahana.

Eia hou, ka manaʻo kumu. ʻAʻohe makemake e "ninini" i nā ʻikepili nui i loko o kahi ʻenekini analytical cluster, e ʻoki koke a ma hope paha ʻoe a pono ʻoe e ʻāwili iā ia. Makemake au e mālama i nā faila, nā faila wale nō, ma kahi ʻano hiki ke hoʻomaopopo ʻia a hana i nā nīnau noiʻi kūpono ma luna o lākou me ka hoʻohana ʻana i nā mea hana like ʻole akā hiki ke hoʻomaopopo. A e nui aʻe nā faila ma nā ʻano like ʻole. A ʻoi aku ka maikaʻi o ka shard ʻaʻole i ka mīkini, akā i ka ʻikepili kumu. Pono mākou i kahi DataLake ākea a ākea, ua hoʻoholo mākou ...

He aha ʻoe inā mālama ʻoe i nā faila i ka mālama ʻana i ke ao scalable Amazon S3, me ka ʻole o ka hoʻomākaukau ʻana i kāu mau ʻāpana mai Hadoop?

Ua maopopo he "haʻahaʻa" kaʻikepili pilikino, akā pehea e pili ana i nāʻikepili'ē aʻe inā lawe mākou i waho a "hoʻokele maikaʻi"?

Cluster-bigdata-analytics ecosystem o Amazon Web Services - ma nā huaʻōlelo maʻalahi loa

Ma ka hoʻoholo ʻana i kā mākou ʻike me AWS, ua hoʻohana ikaika ʻia ʻo Apache Hadoop/MapReduce ma laila no ka manawa lōʻihi ma lalo o nā kīʻaha like ʻole, no ka laʻana ma ka lawelawe DataPipeline (Huhū wau i koʻu mau hoa, aʻo lākou pehea e hoʻomākaukau pono ai). Eia mākou i hoʻonohonoho i nā waihona mai nā lawelawe like ʻole mai nā papa DynamoDB:
Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

A ke holo mau nei lākou ma nā pūʻulu Hadoop/MapReduce i hoʻopili ʻia e like me ka uaki no kekahi mau makahiki i kēia manawa. “E hoʻonoho a poina iā ia”:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

Hiki iā ʻoe ke komo pono i ka satanism data ma o ka hoʻonohonoho ʻana i nā laptops Jupiter i ke ao no nā mea loiloi a me ka hoʻohana ʻana i ka lawelawe AWS SageMaker e hoʻomaʻamaʻa a kau i nā hiʻohiʻona AI i ke kaua. Eia ke ʻano o ia mea iā mākou:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

A ʻae, hiki iā ʻoe ke kiʻi i kahi pona nou iho a i ʻole he mea loiloi i ke ao a hoʻopili iā ia i kahi hui Hadoop/Spark, e hana i nā helu a laila hoʻopaʻa i nā mea āpau:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

Maikaʻi maoli no nā papahana analytical pākahi a no kekahi ua hoʻohana maikaʻi mākou i ka lawelawe EMR no nā helu helu nui a me nā loiloi. Pehea e pili ana i kahi hoʻonā ʻōnaehana no DataLake, e hana ia? I kēia manawa aia mākou ma ka ʻaoʻao o ka manaʻolana a me ke kaumaha a hoʻomau i ka ʻimi.

AWS Glue - ʻo Apache Spark i hoʻopili maikaʻi ʻia ma nā steroid

Ua hoʻololi ʻia aia ka AWS i kāna mana ponoʻī o ka waihona "Hive / Pig / Spark". ʻO ke kuleana o Hive, i.e. Hana ʻia ka papa inoa o nā faila a me kā lākou ʻano ma DataLake e ka lawelawe "Data catalog", ʻaʻole ia e hūnā i kona kūlike me ka ʻano Apache Hive. Pono ʻoe e hoʻohui i ka ʻike i kēia lawelawe e pili ana i kahi o kāu mau faila a me ke ʻano o ia mau faila. ʻAʻole hiki ke loaʻa ka ʻikepili i s3 wale nō, akā i loko o ka waihona, akā ʻaʻole ia ke kumuhana o kēia pou. Eia ke ʻano o ka hoʻonohonoho ʻia ʻana o kā mākou papa kuhikuhi data DataLake:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

Hoʻopaʻa inoa ʻia nā faila, maikaʻi. Inā hōʻano hou ʻia nā faila, hoʻomaka mākou i nā mea kolo ma ka lima a i ʻole ma ka papa manawa, e hōʻano hou i ka ʻike e pili ana iā lākou mai ka loko a mālama iā lākou. A laila hiki ke hana ʻia ka ʻikepili mai ka loko a hoʻoili ʻia nā hopena ma kahi. Ma ka hihia maʻalahi, hoʻouka pū mākou iā s3. Hiki ke hana i ka ʻikepili ma nā wahi a pau, akā manaʻo ʻia e hoʻonohonoho ʻoe i ka hana ma kahi pūʻulu Apache Spark me ka hoʻohana ʻana i nā mana holomua ma o ka AWS Glue API. ʻO ka ʻoiaʻiʻo, hiki iā ʻoe ke lawe i ka code python kahiko a maʻa me ka hoʻohana ʻana i ka hale waihona puke pyspark a hoʻonohonoho i kāna hoʻokō ʻana ma nā nodes N o kahi pūʻulu o kekahi mau mana me ka nānā ʻana, me ka ʻole o ka ʻeli ʻana i loko o ka ʻōpū o Hadoop a me ka huki ʻana i nā pahu docker-moker a hoʻopau i nā hakakā hilinaʻi. .

Eia hou, he manaʻo maʻalahi. ʻAʻohe pono e hoʻonohonoho i ka Apache Spark, pono ʻoe e kākau i ka code python no pyspark, e hoʻāʻo iā ia ma ka ʻāina ma kāu pākaukau a laila holo ma luna o kahi puʻupuʻu nui i ke ao, e kuhikuhi ana i kahi o ka ʻikepili kumu a me kahi e waiho ai i ka hopena. I kekahi manawa pono a pono kēia, a eia kā mākou e hoʻonohonoho ai:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

No laila, inā pono ʻoe e helu i kekahi mea ma kahi puʻupuʻu Spark me ka hoʻohana ʻana i ka ʻikepili ma s3, kākau mākou i ke code ma python/pyspark, hoʻāʻo iā ia, a pōmaikaʻi i ke ao.

Pehea e pili ana i ka orkestra? Pehea inā hāʻule ka hana a nalowale? ʻAe, ua manaʻo ʻia e hana i kahi pipeline nani i ka Apache Pig style a ua hoʻāʻo mākou iā lākou, akā i kēia manawa ua hoʻoholo mākou e hoʻohana i kā mākou orchestration hohonu i PHP a me JavaScript (ʻike wau, aia ka cognitive dissonance, akā hana ia, no ka mea. makahiki a me ka hewa ole).

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

ʻO ke ʻano o nā faila i mālama ʻia i loko o ka loko ke kī o ka hana

He mea nui loa ka hoʻomaopopo ʻana i ʻelua mau mea nui. I mea e hoʻokō koke ʻia ai nā nīnau e pili ana i ka ʻikepili faila i ka loko a ʻaʻole e hoʻohaʻahaʻa ka hana ke hoʻohui ʻia ka ʻike hou, pono ʻoe:

  • E mālama kaʻawale i nā kolamu o nā faila (i ʻole ʻoe e heluhelu i nā laina āpau e hoʻomaopopo i ka mea i loko o nā kolamu). No kēia, ua lawe mākou i ke ʻano parquet me ka hoʻoemi
  • He mea nui ka hoʻokaʻawale ʻana i nā faila i loko o nā waihona e like me: ʻōlelo, makahiki, mahina, lā, pule. ʻO nā ʻenekini i hoʻomaopopo i kēia ʻano sharding e nānā wale i nā waihona pono, me ka kānana ʻole ʻana i nā ʻikepili āpau i ka lālani.

ʻO ka mea nui, ma kēia ʻano, waiho ʻoe i ka ʻikepili kumu ma ke ʻano kūpono loa no nā ʻenekini analytical e kau ʻia ma luna, a hiki i nā faila sharded ke koho koho a heluhelu i nā kolamu pono mai nā faila. ʻAʻole pono ʻoe e "hoʻopiha" i ka ʻikepili ma nā wahi āpau (e haki wale ka waihona) - e hoʻokomo koke iā ia i loko o ka ʻōnaehana faila ma ke ʻano kūpono. ʻOiaʻiʻo, pono e akaka ma ʻaneʻi ʻo ka mālama ʻana i kahi faila csv nui ma DataLake, pono e heluhelu mua ʻia i kēlā me kēia laina e ka hui i mea e unuhi ai i nā kolamu, ʻaʻole kūpono loa. E noʻonoʻo hou i nā mea ʻelua i luna inā ʻaʻole maopopo i ke kumu o kēia mau mea.

AWS Athena - ka jack-in-the-box

A laila, i ka hana ʻana i loko, ua ʻike ʻole mākou i ka Amazon Athena. Ua ʻike koke ʻia ʻo ia ma ka hoʻonohonoho pono ʻana i kā mākou mau faila log nui i loko o nā ʻāpana waihona ma ke ʻano kolamu kūpono (parquet), hiki iā ʻoe ke hana wikiwiki i nā koho ʻike mai lākou a kūkulu i nā hōʻike me ka ʻole, me ka ʻole o kahi pūʻulu Apache Spark/Glue.

Hoʻokumu ʻia ka ʻenekini Athena e ka ʻikepili ma s3 i ka moʻolelo Presto - he ʻelele o ka ʻohana MPP (massive parallel processing) o ka hoʻopili ʻana i ka ʻikepili, e lawe ana i ka ʻikepili ma kahi e waiho ai, mai s3 a me Hadoop a Cassandra a me nā faila kikokikona maʻamau. Pono ʻoe e noi iā Athena e hoʻokō i kahi nīnau SQL, a laila "hana wikiwiki a maʻalahi nā mea āpau." He mea nui e hoʻomaopopo he "akamai" ʻo Athena, hele wale ia i nā faila sharded pono a heluhelu wale i nā kolamu i pono i ka noi.

He mea hoihoi nō hoʻi ke kumu kūʻai no nā noi iā Athena. Uku makou no ka nui o ka ʻikepili i nānā ʻia. ʻO kēlā mau mea. ʻaʻole no ka helu o nā mīkini i loko o ka puʻupuʻu i kēlā me kēia minuke, akā ... no ka ʻikepili i nānā maoli ʻia ma nā mīkini 100-500, ʻo ka ʻikepili wale nō e pono ai e hoʻopau i ka noi.

A ma ke noi ʻana i nā kolamu pono wale nō mai nā waihona sharded pololei, ua ʻike ʻia ua uku ʻia ka lawelawe ʻo Athena iā mākou he ʻumi kālā i ka mahina. ʻAe, maikaʻi, aneane manuahi, hoʻohālikelike ʻia me nā analytics ma nā pūʻulu!

Ma ke ala, eia ke ʻano o kā mākou ʻikepili i ka s3:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

ʻO ka hopena, i ka manawa pōkole, hoʻomaka nā keʻena ʻokoʻa loa i ka ʻoihana, mai ka palekana ʻike a hiki i ka analytics, e hana ikaika i nā noi iā Athena a wikiwiki, i kekona, loaʻa nā pane kūpono mai ka ʻikepili "nui" i nā manawa lōʻihi: mahina, hapalua makahiki, etc. P.

Akā, hele mākou a hoʻomaka e hele i ke ao no nā pane ma o ka mea hoʻokele ODBC: kākau kekahi mea kākau i kahi nīnau SQL i loko o kahi console maʻamau, ma nā mīkini 100-500 "no nā peni" e hoʻouna i ka ʻikepili i s3 a hoʻihoʻi i kahi pane maʻamau i loko o kekahi mau kekona. ʻoluʻolu. A wikiwiki. ʻAʻole hiki iaʻu ke manaʻoʻiʻo.

ʻO ka hopena, ua hoʻoholo e mālama i ka ʻikepili ma s3, ma kahi ʻano columnar kūpono a me ka sharding kūpono o ka ʻikepili i loko o nā waihona ... ua loaʻa iā mākou ʻo DataLake a me kahi engine analytical wikiwiki a maʻalahi - no ka manuahi. A lilo ʻo ia i mea kaulana loa i ka hui, no ka mea... hoʻomaopopo iā SQL a hana i nā kauoha o ka nui ma mua o ka hoʻomaka ʻana / hoʻokuʻu / hoʻonohonoho ʻana i nā pūʻulu. "A inā like ka hopena, no ke aha e uku hou aku ai?"

ʻO kahi noi iā Athena e like me kēia. Inā makemake ʻia, ʻoiaʻiʻo, hiki iā ʻoe ke hana i lawa paʻakikī a me ka nui-ʻaoʻao SQL hulina, akā e kaupalena mākou iā mākou iho i ka hui maʻalahi. E ʻike kākou i nā code pane i loaʻa i ka mea kūʻai aku i kekahi mau pule i hala aku nei i loko o nā log server pūnaewele a e hōʻoia ʻaʻohe hewa:

Pehea mākou i hoʻonohonoho ai i kahi DataLake maikaʻi loa a me ke kumu kūʻai

haʻina

Ma hope o ka hele ʻana, ʻaʻole e ʻōlelo i kahi ala lōʻihi, akā ʻeha, e loiloi mau ana i nā pilikia a me ke kiʻekiʻe o ka paʻakikī a me ke kumukūʻai o ke kākoʻo, ua loaʻa iā mākou kahi hopena no DataLake a me nā analytics ʻaʻole e pau ka leʻaleʻa iā mākou me ka wikiwiki a me ke kumu kūʻai.

Ua ʻike ʻia ʻo ke kūkulu ʻana i kahi DataLake kūpono, wikiwiki a maʻalahi hoʻi no ka pono o nā keʻena ʻokoʻa loa o ka ʻoihana i loko o ka hiki o nā mea hoʻomohala ʻike ʻaʻole i hana ma ke ʻano he mea kākau a ʻaʻole ʻike i ke kaha kiʻi ʻana i nā ʻāpana ma nā ʻāpana. nā pua a ʻike i nā huaʻōlelo 50 mai ke kaiaola Hadoop.

I ka hoʻomaka ʻana o ka huakaʻi, ua hoʻokaʻawale koʻu poʻo mai nā zoo hihiu he nui o nā polokalamu hāmama a pani ʻia a me ka hoʻomaopopo ʻana i ke kaumaha o ke kuleana i nā mamo. E hoʻomaka wale i ke kūkulu ʻana i kāu DataLake mai nā mea hana maʻalahi: nagios/munin -> elastic/kibana -> Hadoop/Spark/s3..., e hōʻiliʻili i nā manaʻo manaʻo a hoʻomaopopo hohonu i ka physics o nā kaʻina hana. ʻO nā mea āpau a paʻakikī - hāʻawi iā ia i nā ʻenemi a me nā mea hoʻokūkū.

Inā ʻaʻole ʻoe makemake e hele i ke ao a makemake e kākoʻo, hōʻano hou a hoʻopaʻa i nā papahana open-source, hiki iā ʻoe ke kūkulu i kahi hoʻolālā e like me kā mākou kūloko, ma nā mīkini keʻena inexpensive me Hadoop a me Presto ma luna. ʻO ka mea nui ʻaʻole e hoʻōki a neʻe i mua, helu, e ʻimi i nā hopena maʻalahi a maʻalahi, a e holo pono nā mea āpau! Laki maikaʻi i nā mea a pau a ʻike hou iā ʻoe!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka