ʻO MongoDB maʻamau ka koho kūpono?

Ua ʻike koke wau i kēlā Wehe ʻo Red Hat i ke kākoʻo MongoDB mai Satellite ('ōlelo lākou ma muli o nā loli laikini). Ua noʻonoʻo kēia iaʻu no ka mea i nā makahiki i hala aku nei ua ʻike au i kahi ton o nā ʻatikala e pili ana i ka weliweli ʻo MongoDB a pehea e hoʻohana ʻole ai kekahi. Akā i kēia manawa, ua lilo ʻo MongoDB i huahana ʻoi aku ka makua. He aha i hana ai? ʻO ka inaina a pau ma muli o nā hewa i ka kūʻai mua ʻana o kahi DBMS hou? A i ʻole ke hoʻohana wale nei nā kānaka iā MongoDB ma nā wahi hewa?

Inā manaʻo ʻoe e pale ana wau iā MongoDB, e ʻoluʻolu e heluhelu hoole ma ka hope o ka ʻatikala.

Hōʻano hou

Ke hana nei au ma ka ʻoihana polokalamu no nā makahiki ʻoi aku ma mua o kaʻu e ʻōlelo ai, akā ua ʻike wale wau i kahi ʻāpana liʻiliʻi o nā ʻano i loaʻa i kā mākou ʻoihana. Ua ʻike au i ka piʻi ʻana o 4GL, AOP, Agile, SOA, Web 2.0, AJAX, Blockchain ... pau ʻole ka papa inoa. I kēlā me kēia makahiki, puka mai nā ʻano hou. Holo koke kekahi, a hoʻololi maoli kekahi i ke ʻano o ka hoʻomohala ʻana o ka polokalamu.

Hoʻokumu nā ʻano hou a pau i ka hauʻoli nui: lele ka poʻe ma luna o ka moku, a ʻike paha i ka walaʻau i hana ʻia e nā poʻe ʻē aʻe a hahai i ka lehulehu. Hoʻopili ʻia kēia kaʻina hana e Gartner ma pōʻaiapuni hype. ʻOiai he hoʻopaʻapaʻa, wehewehe ʻia kēia kaʻina manawa i nā mea e hiki mai ana i nā ʻenehana ma mua o ka lilo ʻana i mea pono.

Akā, i kēlā me kēia manawa, ʻike ʻia kahi mea hou (a i ʻole ka lua o ka hele ʻana mai, e like me kēia) i alakaʻi ʻia e hoʻokahi hoʻokō kikoʻī. I ka hihia o NoSQL, ua hoʻoikaika nui ʻia ka hype e ka puka ʻana a me ka piʻi ʻana o ka meteoric o MongoDB. ʻAʻole i hoʻomaka ʻo MongoDB i kēia ʻano: ʻoiaʻiʻo, ua hoʻomaka nā ʻoihana pūnaewele nui e loaʻa nā pilikia i ka hoʻoponopono ʻana i ka nui o nā ʻikepili, i alakaʻi ai i ka hoʻihoʻi ʻana i nā ʻikepili pili ʻole. Ua hoʻomaka ka neʻe holoʻokoʻa me nā papahana e like me Google's Bigtable a me Facebook's Cassandra, akā ʻo MongoDB i lilo i mea kaulana loa a hiki i ka hoʻokō ʻana i ka waihona NoSQL i loaʻa i ka hapa nui o nā mea hoʻomohala.

'Ōlelo Aʻo: Manaʻo paha ʻoe ke huikau nei au i nā ʻikepili palapala me nā waihona kolamu, nā kī/kūʻai waiwai, a i ʻole kekahi o nā ʻano hale kūʻai ʻikepili ʻē aʻe e hāʻule ana ma lalo o ka wehewehe NoSQL maʻamau. A pololei ʻoe. Akā, i kēlā manawa ua noho aliʻi ka haunaele. Hoʻopili ʻia nā mea a pau me NoSQL, ua lilo ia i kēlā me kēia kanaka loa pono, ʻoiai he nui ka poʻe i ʻike ʻole i nā ʻokoʻa o nā ʻenehana like ʻole. No nā mea he nui, ua lilo ʻo MongoDB synonymous me NoSQL.

A ua hoʻomaka nā mea hoʻomohala. ʻO ka manaʻo o kahi waihona schemaless e hoʻohālikelike ana i nā pilikia e hoʻowalewale. Ma kahi o 2014, ʻike ʻia ma nā wahi āpau i hoʻohana ʻia i kahi ʻikepili pili e like me MySQL, Postgres a i ʻole SQL Server i hoʻomaka e kau i nā ʻikepili MongoDB. I ka nīnau ʻana i ke kumu, hiki iā ʻoe ke loaʻa kahi pane mai ka banal "ʻo ia ka pālākiō o ka pūnaewele" i ka noʻonoʻo ʻoi aku "ua hoʻonohonoho ʻia kaʻu ʻikepili a kūpono i loko o kahi waihona me ka ʻole o ka schema."

He mea nui e hoʻomanaʻo ʻo MongoDB, a me nā palapala ʻikepili ma ka laulā, e hoʻoponopono i nā pilikia me nā ʻikepili pili kuʻuna.

  • Hoʻolālā koʻikoʻi: Me kahi waihona pili, inā ua hana ikaika ʻoe i ka ʻikepili, koi ʻia ʻoe e hana i kahi pūʻulu o nā kolamu "ʻokoʻa" o ka ʻikepili, hoʻokuʻu i nā ʻikepili i laila, a i ʻole hoʻohana i ka hoʻonohonoho. EAV... he mau hemahema ko kēia mau mea a pau.
  • Paʻakikī i ka scaling: Inā nui ka ʻikepili i kūpono ʻole ma ka kikowaena hoʻokahi, hāʻawi ʻo MongoDB i nā mīkini e ʻae iā ia e hoʻonui i nā mīkini he nui.
  • Hoʻololi kaapuni paʻakikī: ʻaʻohe neʻe ʻana! I loko o kahi waihona pili, hiki i ka hoʻololi ʻana i ka hoʻolālā waihona ke pilikia nui (ʻoi aku ka nui o ka ʻikepili). Ua hiki iā MongoDB ke maʻalahi i ke kaʻina hana. A ua maʻalahi ia e hiki iā ʻoe ke hoʻololi i ke kaapuni i kou hele ʻana a neʻe wikiwiki loa.
  • Hana hoʻopaʻa: Ua maikaʻi ka hana MongoDB, ʻoi aku ka maikaʻi ke hoʻonohonoho pono ʻia. ʻO ka hoʻonohonoho waho o ka pahu a MongoDB, kahi i hoʻohewa pinepine ʻia ai, hōʻike i kekahi mau helu hana hoʻonani.

Aia nā pilikia a pau iā ʻoe

Nui nā pōmaikaʻi o MongoDB, ʻoi aku hoʻi no kekahi mau papa pilikia. Inā heluhelu ʻoe i ka papa inoa ma luna me ka ʻike ʻole i ka pōʻaiapili a me ka ʻike ʻole, hiki iā ʻoe ke manaʻo he DBMS kipi maoli ʻo MongoDB. ʻO ka pilikia wale nō ka loaʻa ʻana o nā pōmaikaʻi i hōʻike ʻia ma luna nei me kekahi mau hōʻailona, ​​ʻo kekahi o ia mau mea i helu ʻia ma lalo nei.

No ka pololei, ʻaʻohe mea ma 10gen/MongoDB Inc. ʻaʻole ʻoe e ʻōlelo ʻaʻole ʻoiaʻiʻo kēia mau mea, he mau hoʻopono wale nō kēia.

  • Nā hana i nalowale: He hiʻohiʻona koʻikoʻi o nā ʻikepili pili (ʻaʻole nā ​​​​mea āpau, akā ka hapa nui). ʻO ke ʻano o ka Transactional hiki iā ʻoe ke hana i nā hana he nui a hiki ke hōʻoia i ka paʻa mau o ka ʻikepili. ʻOiaʻiʻo, me kahi waihona NoSQL, hiki i ka transactionality i loko o kahi palapala hoʻokahi, a i ʻole hiki iā ʻoe ke hoʻohana i nā hana ʻelua-phase e kiʻi i nā semantics transactional. Akā, pono ʻoe e hoʻokō i kēia hana iā ʻoe iho ... he hana paʻakikī a hoʻopau manawa. ʻAʻole ʻoe maopopo i ka pilikia a hiki i kou ʻike ʻana i ka ʻikepili i loko o ka waihona ʻikepili i pau i nā mokuʻāina kūpono ʻole no ka mea ʻaʻole hiki ke hōʻoia ʻia ka atomicity o nā hana. Nānā: Ua haʻi mai ka poʻe he nui iaʻu ua hoʻokomo ʻo MongoDB 4.0 i nā kālepa i ka makahiki i hala, akā me kekahi mau palena. ʻO ka lawe ʻana mai ka ʻatikala e mau ana: e loiloi i ka maikaʻi o ka ʻenehana i kāu mau pono.
  • Nalo o ka pili pono (nā kī haole): Inā pili kāu ʻikepili, a laila pono ʻoe e hoʻopili iā lākou i ka noi. ʻO ka loaʻa ʻana o kahi waihona e mahalo i kēia mau pilina e lawe i ka nui o ka hana o ka noi a no laila kāu mau polokalamu.
  • ʻAʻole hiki ke hoʻopili i ka hoʻolālā ʻikepili: Hiki ke pilikia nui i kekahi manawa nā schema koʻikoʻi, akā he hana ikaika nō hoʻi ia no ka hoʻonohonoho ʻikepili maikaʻi inā hoʻohana naʻauao. Hāʻawi nā waihona palapala e like me MongoDB i ka maʻalahi o ka schema, akā ʻo kēia hiki ke hoʻoneʻe i ke kuleana no ka mālama ʻana i ka ʻikepili. Inā ʻaʻole ʻoe e mālama iā lākou, e pau ana ʻoe i ke kākau ʻana i nā code he nui i kāu noi e helu i ka ʻikepili i mālama ʻole ʻia ma ke ʻano āu e manaʻo ai. E like me kā mākou e ʻōlelo pinepine ai ma kā mākou hui Simple Thread ... e kākau hou ʻia ka noi i kekahi lā, akā e ola mau ka ʻikepili. Hoʻomaopopo: Kākoʻo ʻo MongoDB i ka nānā ʻana i ka schema: pono ia, akā ʻaʻole hāʻawi i nā hōʻoia like e like me ka waihona pili. ʻO ka mea mua, ʻaʻole pili ka hoʻohui ʻana a i ʻole ka hoʻololi ʻana i kahi loiloi schema i ka ʻikepili i loaʻa i ka hōʻiliʻili. Aia iā ʻoe e hōʻoia e hōʻano hou i ka ʻikepili e like me ka schema hou. E hoʻoholo no ʻoe iho inā lawa kēia no kāu mau pono.
  • ʻŌlelo nīnau maoli / nalowale o ka kaiaola mea hana: ʻO ka hiki ʻana mai o SQL he hoʻololi maoli a ʻaʻohe mea i loli mai ia manawa. He ʻōlelo ikaika loa, akā paʻakikī pū kekahi. ʻO ka pono e kūkulu i nā nīnau ʻikepili ma kahi ʻōlelo hou i loaʻa nā ʻāpana JSON i manaʻo ʻia he ala nui i hope e ka poʻe i ʻike i ka hana me SQL. Aia ke ao holoʻokoʻa o nā mea hana e launa pū me nā ʻikepili SQL, mai nā IDE a i nā mea hana hōʻike. ʻO ka neʻe ʻana i kahi waihona i kākoʻo ʻole iā SQL, ʻo ia hoʻi, ʻaʻole hiki iā ʻoe ke hoʻohana i ka hapa nui o kēia mau mea hana a i ʻole pono ʻoe e unuhi i ka ʻikepili i SQL e hoʻohana ai iā lākou, ʻoi aku ka paʻakikī ma mua o kou manaʻo.

ʻAʻole maopopo ka nui o nā mea hoʻomohala i huli iā MongoDB i ke kālepa-offs, a luʻu pinepine i ke poʻo i ka hoʻokomo ʻana i kā lākou hale kūʻai ʻikepili mua. Ma hope o kēia, ua paʻakikī pinepine ka hoʻi ʻana mai.

He aha ka mea i hiki ke hana ʻokoʻa?

ʻAʻole i lele mua nā poʻe a pau i lalo. Akā he nui nā papahana i hoʻokomo iā MongoDB ma nā wahi i kūpono ʻole - a pono lākou e noho me ia no nā makahiki he nui e hiki mai ana. Inā ua hoʻolimalima kēia mau hui i kekahi manawa a noʻonoʻo pono i kā lākou koho ʻenehana, ua hana nā mea he nui i nā koho ʻokoʻa.

Pehea e koho ai i ka ʻenehana kūpono? Nui nā hoʻāʻo ʻana e hana i kahi ʻōnaehana hoʻonohonoho no ka loiloi ʻenehana, e like me "Pahana no ka hoʻokomo ʻana i nā ʻenehana i loko o nā hui polokalamu" и "Paʻa no ka loiloi ʻana i nā ʻenehana polokalamu", akā i koʻu manaʻo he paʻakikī pono ʻole kēia.

Nui nā ʻenehana hiki ke loiloi naʻauao ma ka nīnau ʻana i ʻelua mau nīnau kumu. ʻO ka pilikia ka loaʻa ʻana o nā poʻe e hiki ke pane iā lākou me ke kuleana, e lawe ana i ka manawa e ʻimi ai i nā pane a me ke ʻano ʻole.

Inā ʻaʻole ʻoe e kū nei i kekahi pilikia, ʻaʻole pono ʻoe i kahi mea hana hou. kiko.

Nīnau 1: He aha nā pilikia aʻu e ho'āʻo nei e hoʻoponopono?

Inā ʻaʻole ʻoe e kū nei i kekahi pilikia, ʻaʻole pono ʻoe i kahi mea hana hou. kiko. ʻAʻohe pono e ʻimi i kahi hoʻonā a laila hana i kahi pilikia. Inā ʻaʻole ʻoe i loaʻa i kahi pilikia i hoʻoponopono ʻia e ka ʻenehana hou ma mua o kāu ʻenehana i kēia manawa, ʻaʻohe mea e kūkākūkā ai ma aneʻi. Inā ʻoe e noʻonoʻo nei e hoʻohana i kēia ʻenehana no ka mea ua ʻike ʻoe i ka hoʻohana ʻana o nā poʻe ʻē aʻe, e noʻonoʻo e pili ana i nā pilikia a lākou e kū nei a nīnau inā loaʻa iā ʻoe kēlā mau pilikia. He mea maʻalahi ka ʻae ʻana i kahi ʻenehana no ka mea ke hoʻohana nei nā poʻe ʻē aʻe, ʻo ka paʻakikī ka hoʻomaopopo ʻana inā ʻoe e alo i nā pilikia like.

Nīnau 2: He aha kaʻu e nalo nei?

He nīnau paʻakikī loa kēia no ka mea pono ʻoe e ʻeli a loaʻa ka ʻike maikaʻi i ka ʻenehana kahiko a me ka ʻenehana hou. I kekahi manawa ʻaʻole hiki iā ʻoe ke hoʻomaopopo maoli i kahi mea hou a hiki i kou kūkulu ʻana i kekahi mea me ia a i ʻole ka loaʻa ʻana o kekahi me ia ʻike.

Inā ʻaʻohe āu, a laila kūpono ke noʻonoʻo e pili ana i ka liʻiliʻi loa e hiki ai ke hoʻoholo i ka waiwai o kēia mea hana. A ke hana ʻoe i ka hoʻopukapuka, pehea ka paʻakikī o ka hoʻohuli ʻana i ka hoʻoholo?

Hoʻopilikia mau nā kānaka i nā mea a pau

Ke ho'āʻo nei ʻoe e pane i kēia mau nīnau me ka ʻole e like me ka hiki, e hoʻomanaʻo i hoʻokahi mea: pono ʻoe e hakakā i ke ʻano kanaka. Aia kekahi mau manaʻo cognitive e pono e lanakila no ka loiloi maikaʻi ʻana i ka ʻenehana. Eia kekahi mau mea:

  • Ka hopena o ka hui ʻana i ka hapa nui - ua ʻike nā mea a pau e pili ana iā ia, akā paʻakikī ke kaua aku iā ia. E hōʻoia wale i ka ʻenehana i kūpono i kāu mau pono maoli.
  • Ka hopena hou - Nui nā mea hoʻomohala e hoʻohaʻahaʻa i nā ʻenehana a lākou i hana ai no ka manawa lōʻihi a hoʻonui i ka pono o ka ʻenehana hou. ʻAʻole wale nā ​​polokalamu polokalamu, hiki i nā mea a pau ke maʻalahi i kēia ʻano cognitive bias.
  • Ka hopena o nā hiʻohiʻona maikaʻi - ʻIke mākou i ka mea i laila a nalowale ka ʻike i ka mea i nalowale. Hiki i kēia ke alakaʻi i ka haunaele ke hui pū ʻia me ka hopena hou, ʻoiai ʻaʻole wale ʻoe e hoʻonui i ka ʻenehana hou, akā ʻaʻole hoʻi i kāna mau hemahema..

ʻAʻole maʻalahi ka loiloi pahuhopu, akā ʻo ka hoʻomaopopo ʻana i ke kumu o ka cognitive bias e kōkua iā ʻoe e hana i nā hoʻoholo kūpono.

Hōʻuluʻulu

Ke ʻike ʻia kahi mea hou, pono e pane ʻia nā nīnau ʻelua me ka mālama nui:

  • Hoʻoponopono kēia mea hana i kahi pilikia maoli?
  • Hoʻomaopopo maikaʻi mākou i nā kālepa?

Inā ʻaʻole hiki iā ʻoe ke pane wiwo ʻole i kēia mau nīnau ʻelua, e hoʻi i hope a noʻonoʻo.

No laila ʻo MongoDB ke koho kūpono? ʻOiaʻiʻo ʻae; E like me ka nui o nā ʻenehana ʻenehana, pili kēia i nā kumu he nui. Ma waena o ka poʻe i pane i kēia mau nīnau ʻelua, nui ka poʻe i pōmaikaʻi mai MongoDB a hoʻomau i ka hana. No ka poʻe ʻaʻole, manaʻo wau ua aʻo ʻoe i kahi haʻawina koʻikoʻi a ʻaʻole ʻeha loa e pili ana i ka neʻe ʻana i ke kaʻina hype.

Hoʻolele

Makemake wau e wehewehe ʻaʻohe oʻu aloha a ʻaʻole hoʻi i ka pilina inaina me MongoDB. ʻAʻole i loaʻa iā mākou ke ʻano o nā pilikia i kūpono ʻo MongoDB e hoʻoponopono. ʻIke wau ʻo 10gen/MongoDB Inc. Ua wiwo ʻole ʻo ia i ka wā mua, e hoʻonohonoho ana i nā kuhi hewa ʻole a me ka hoʻolaha ʻana iā MongoDB ma nā wahi āpau (ʻoi loa ma hackathons) ma ke ʻano he hopena ākea no ka hana ʻana me kekahi ʻikepili. He hoʻoholo maikaʻi ʻole paha ia. Akā ke hōʻoia nei i ke ala i wehewehe ʻia ma ʻaneʻi: hiki ke ʻike koke ʻia kēia mau pilikia me ka loiloi haʻahaʻa o ka ʻenehana.

Source: www.habr.com

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