Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

Aloha kākou! ʻO Golov Nikolay koʻu inoa. Ma mua, ua hana au ma Avito a mālama i ka Data Platform no ʻeono makahiki, ʻo ia hoʻi, ua hana au ma nā ʻikepili āpau: analytical (Vertica, ClickHouse), streaming a me OLTP (Redis, Tarantool, VoltDB, MongoDB, PostgreSQL). I loko o kēia manawa, ua hana au me ka nui o nā waihona - ʻokoʻa loa a ʻokoʻa, a me nā hihia maʻamau ʻole o kā lākou hoʻohana.

Ke hana nei au ma ManyChat. ʻO ke kumu, he hoʻomaka kēia - hou, makemake nui a ulu wikiwiki. A i koʻu komo mua ʻana i ka hui, ua kū mai kahi nīnau maʻamau: "He aha ka mea e lawe ai kahi ʻōpio hoʻomaka mai ka DBMS a me ka mākeke waihona?"

Ma kēia ʻatikala, ma muli o kaʻu hōʻike ma ʻahaʻaina pūnaewele RIT++2020, e pane au i keia ninau. Loaʻa ka mana wikiō o ka hōʻike ma YouTube.

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

Nā waihona ʻike maʻamau 2020

ʻO 2020 kēia, nānā au a ʻike i ʻekolu ʻano ʻikepili.

ʻAno mua - nā waihona OLTP maʻamau: PostgreSQL, SQL Server, Oracle, MySQL. Ua kākau ʻia lākou i ka wā lōʻihi, akā pili nō naʻe no ka mea ua kamaʻāina lākou i ke kaiāulu hoʻomohala.

ʻO ke ʻano ʻelua nā kumu mai "zero". Ua hoʻāʻo lākou e neʻe aku mai nā ʻano maʻamau ma ka haʻalele ʻana iā SQL, nā hale kuʻuna a me ACID, ma ka hoʻohui ʻana i ka sharding i kūkulu ʻia a me nā hiʻohiʻona nani ʻē aʻe. No ka laʻana, ʻo Cassandra kēia, MongoDB, Redis a i ʻole Tarantool. Ua makemake kēia mau hoʻonā āpau e hāʻawi i ka mākeke i kahi mea hou a noho i kā lākou niche no ka mea ua lilo lākou i mea maʻalahi no kekahi mau hana. E kuhikuhi wau i kēia mau ʻikepili me ka huaʻōlelo umbrella NOSQL.

Ua pau nā "zero", ua maʻa mākou i nā ʻikepili NOSQL, a ʻo ka honua, mai koʻu manaʻo, ua hana i ka hana aʻe - i nā waihona waihona. Loaʻa i kēia mau ʻikepili ke kumu like me nā waihona OLTP maʻamau a i ʻole nā ​​NoSQL hou. Akā ʻaʻole pono lākou no DBA a me DevOps a holo ma luna o nā lako hana i nā ao. No ka mea hoʻomohala, he "base" wale nō kēia e hana ana ma kahi, akā ʻaʻohe mea mālama i ke ʻano o ka hoʻokomo ʻia ʻana ma ke kikowaena, nāna i hoʻonohonoho i ka kikowaena a nāna e hoʻonui.

Nā laʻana o ia ʻikepili:

  • ʻO AWS RDS kahi kāpili i mālama ʻia no PostgreSQL/MySQL.
  • ʻO DynamoDB kahi analogue AWS o kahi waihona waihona palapala, e like me Redis a me MongoDB.
  • ʻO Amazon Redshift kahi waihona analytical mālama ʻia.

He mau ʻikepili kahiko kēia, akā hoʻāla ʻia i loko o kahi kaiapuni i hoʻokele ʻia, me ka ʻole o ka pono e hana me ka lako.

Nānā. Lawe ʻia nā hiʻohiʻona no ke kaiapuni AWS, akā aia nō kā lākou mau analogues ma Microsoft Azure, Google Cloud, a i ʻole Yandex.Cloud.

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

He aha ka mea hou e pili ana i kēia? I 2020, ʻaʻohe o kēia.

Manaʻo serverless

ʻO ka mea hou loa ma ka mākeke ma 2020 he serverless a serverless solutions.

E ho'āʻo wau e wehewehe i ke ʻano o kēia me ka hoʻohana ʻana i ka laʻana o kahi lawelawe maʻamau a i ʻole ka noi hope.
No ka hoʻolālā ʻana i kahi noi hope maʻamau, kūʻai mākou a hoʻolimalima paha i kahi kikowaena, kope i ke code ma luna ona, hoʻopuka i ka hopena ma waho a uku mau no ka hoʻolimalima, uila a me nā lawelawe kikowaena data. ʻO kēia ka papahana maʻamau.

Aia kekahi ala ʻē aʻe? Me nā lawelawe serverless hiki iā ʻoe.

He aha ka manaʻo o kēia ala: ʻaʻohe kikowaena, ʻaʻole hoʻolimalima i kahi hiʻohiʻona virtual i ke ao. No ka hoʻokau ʻana i ka lawelawe, kope i ke code (hana) i ka waihona a hoʻolaha i ka hopena. A laila uku wale mākou no kēlā me kēia kelepona i kēia hana, me ka nānā ʻole ʻana i ka hāmeʻa kahi i hoʻokō ʻia ai.

E ho'āʻo wau e hōʻike i kēia ala me nā kiʻi.
Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

Hoʻolaha maʻamau. Loaʻa iā mākou kahi lawelawe me kahi ukana. Hoʻonui mākou i ʻelua mau manawa: nā kikowaena kino a i ʻole nā ​​manawa ma AWS. Hoʻouna ʻia nā noi waho i kēia mau manawa a hana ʻia ma laila.

E like me kāu e ʻike ai ma ke kiʻi, ʻaʻole i hoʻokuʻu like ʻia nā kikowaena. Hoʻohana ʻia ka 100%, ʻelua mau noi, a ʻo kahi 50% wale nō - ʻaʻohe hapa. Inā ʻaʻole hiki mai ʻekolu mau noi, akā 30, a laila ʻaʻole hiki i ka ʻōnaehana holoʻokoʻa ke hoʻokō i ka ukana a hoʻomaka e lohi.

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

Hoʻolaha kikowaena ʻole. I loko o kahi kikowaena serverless, ʻaʻohe o ia lawelawe i nā manawa a i ʻole nā ​​​​kauka. Aia kekahi loko o nā kumuwaiwai wela - nā pahu Docker liʻiliʻi i hoʻomākaukau ʻia me ka code hana i hoʻonohonoho ʻia. Loaʻa ka ʻōnaehana i nā noi o waho a no kēlā me kēia o lākou ka serverless framework e hoʻāla i kahi pahu liʻiliʻi me ke code: hana ia i kēia noi kūikawā a pepehi i ka ipu.

Hoʻokahi noi - hoʻokahi pahu i hāpai ʻia, 1000 noi - 1000 pahu. A ʻo ka hoʻolaha ʻana ma luna o nā kikowaena lako lako ka hana a ka mea hāʻawi kapua. Ua hūnā loa ia e ka serverless framework. Ma kēia manaʻo mākou e uku i kēlā me kēia kelepona. No ka laʻana, hiki mai hoʻokahi kelepona i ka lā - uku mākou no hoʻokahi kelepona, hele mai hoʻokahi miliona i kēlā me kēia minuke - uku mākou no hoʻokahi miliona. A i ʻole i kekona, hiki mai kēia.

ʻO ka manaʻo o ka hoʻopuka ʻana i kahi hana serverless kūpono no kahi lawelawe mokuʻāina. A inā makemake ʻoe i kahi lawelawe statefull (statefull), a laila hoʻohui mākou i kahi waihona i ka lawelawe. I kēia hihia, i ka wā e hana ai me ka moku'āina, kākau wale kēlā me kēia hana statefull a heluhelu mai ka waihona. Eia kekahi, mai kahi waihona o kekahi o nā ʻano ʻekolu i wehewehe ʻia ma ka hoʻomaka o ka ʻatikala.

He aha ka palena maʻamau o kēia mau waihona? ʻO kēia nā kumukūʻai o kahi kapuaʻi i hoʻohana mau ʻia a i ʻole server lako (a i ʻole kekahi mau kikowaena). ʻAʻole ia he mea nui inā mākou e hoʻohana i kahi waihona maʻamau a mālama ʻia paha, inā he Devops a he admin a ʻaʻole paha, ke uku mau nei mākou no ka hoʻolimalima ʻana i ka lako uila, ka uila a me ka hoʻolimalima ʻikepili 24/7. Inā loaʻa iā mākou kahi kumu maʻamau, uku mākou no ka haku a me ke kauā. Inā he waihona sharded i hoʻouka nui ʻia, uku mākou no nā kikowaena 10, 20 a i ʻole 30, a uku mau mākou.

ʻO ka loaʻa ʻana o nā kikowaena paʻa paʻa i ka hoʻolālā kumukūʻai i ʻike mua ʻia he ʻino pono. Loaʻa i nā ʻikepili maʻamau nā pilikia ʻē aʻe, e like me ka palena o ka helu o nā pilina, nā palena scaling, geo-distributed consensus - hiki iā lākou ke hoʻoponopono i kekahi mau ʻikepili, akā ʻaʻole i ka manawa hoʻokahi a ʻaʻole kūpono.

ʻIkepili ʻole server - theory

Nīnau o 2020: hiki paha ke hana i kahi kikowaena waihona ʻole? Ua lohe ka poʻe a pau e pili ana i ka serverless backend... e hoʻāʻo kāua e hana i ka serverless server?

He mea ʻē kēia, no ka mea, he lawelawe piha ka waihona, ʻaʻole kūpono loa no ka ʻōnaehana serverless. I ka manawa like, nui loa ka mokuʻāina o ka waihona: gigabytes, terabytes, a ma nā waihona analytical a hiki i nā petabytes. ʻAʻole maʻalahi ka hoʻāla ʻana i nā pahu Docker māmā.

Ma ka ʻaoʻao ʻē aʻe, kokoke i nā ʻikepili hou a pau ka nui o nā loiloi a me nā ʻāpana: nā kālepa, ka hoʻonohonoho pono ʻana, nā kaʻina hana, nā hilinaʻi pili a me ka nui o nā loina. No ka nui loa o ka ʻikepili logic, lawa kahi mokuʻāina liʻiliʻi. Hoʻohana pololei ʻia ʻo Gigabytes a me Terabytes e kahi ʻāpana liʻiliʻi o ka logic database i pili i ka hoʻokō pololei ʻana i nā nīnau.

No laila, ʻo ka manaʻo: inā ʻae kekahi hapa o ka loiloi i ka hoʻokō stateless, no ke aha e hoʻokaʻawale ʻole ai i ka waihona i nā ʻāpana Stateful a me Stateless.

Serverless no nā hoʻonā OLAP

E ʻike kākou i ke ʻano o ka ʻoki ʻana i kahi waihona i nā ʻāpana Stateful a me Stateless me ka hoʻohana ʻana i nā laʻana kūpono.

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

No ka laʻana, loaʻa iā mākou kahi waihona analytical: kaʻikepili waho (ʻulaʻula cylinder ma ka hema), he kaʻina hana ETL e hoʻouka i kaʻikepili i loko o ka waihona, a me ka mea nāna e hoʻouna i nā nīnau SQL i ka waihona. He papahana hana hale waihona ikepili maʻamau kēia.

Ma kēia papahana, hana ʻia ʻo ETL i hoʻokahi manawa. A laila pono ʻoe e uku mau no nā kikowaena kahi e holo ai ka waihona me ka ʻikepili i hoʻopiha ʻia me ETL, i loaʻa kahi mea e hoʻouna ai i nā nīnau.

E nānā i kahi ala ʻē aʻe i hoʻokō ʻia ma AWS Athena Serverless. ʻAʻohe mea paʻa i hoʻolaʻa paʻa ʻia kahi e mālama ʻia ai ka ʻikepili i hoʻoiho ʻia. Ma kahi o kēia:

  • Hoʻouna ka mea hoʻohana i kahi nīnau SQL iā Athena. Hoʻopili ka Athena optimizer i ka nīnau SQL a huli i ka hale kūʻai metadata (Metadata) no ka ʻikepili kikoʻī e pono ai e hoʻokō i ka nīnau.
  • ʻO ka optimizer, e pili ana i ka ʻikepili i hōʻiliʻili ʻia, e hoʻoiho i ka ʻikepili pono mai nā kumu waho i loko o kahi waiho manawaleʻa (temporary database).
  • Hoʻokō ʻia kahi nīnau SQL mai ka mea hoʻohana i kahi waiho manawaleʻa a hoʻihoʻi ʻia ka hopena i ka mea hoʻohana.
  • Hoʻopau ʻia ka waiho ʻana no ka manawa a hoʻokuʻu ʻia nā kumuwaiwai.

Ma kēia hoʻolālā, uku wale mākou no ke kaʻina hana o ka hoʻokō ʻana i ka noi. ʻAʻohe noi - ʻaʻohe koina.

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

He hana hana kēia a hoʻokō ʻia ʻaʻole wale ma Athena Serverless, akā pū kekahi ma Redshift Spectrum (ma AWS).

Hōʻike ka hiʻohiʻona Athena e holo ana ka waihona Serverless ma nā nīnau maoli me nā ʻumi a me nā haneli o Terabytes o ka ʻikepili. Pono nā haneli o Terabytes i nā haneli o nā kikowaena, akā ʻaʻole pono mākou e uku no lākou - uku mākou no nā noi. He haʻahaʻa ka wikiwiki o kēlā me kēia noi ke hoʻohālikelike ʻia me nā ʻikepili analytical kūikawā e like me Vertica, akā ʻaʻole mākou e uku no nā manawa haʻahaʻa.

Hoʻohana ʻia kēlā waihona no nā nīnau ad-hoc kākaʻikahi. No ka laʻana, ke hoʻoholo wale mākou e hoʻāʻo i kahi kuhiakau ma kahi nui o ka ʻikepili. He kūpono ʻo Athena no kēia mau hihia. No nā noi maʻamau, ʻoi aku ke kumukūʻai o ia ʻōnaehana. I kēia hihia, e hūnā i ka ʻikepili i kekahi hoʻonā kūikawā.

Serverless no nā hāʻina OLTP

Ua nānā ka laʻana mua i nā hana OLAP (analytical). I kēia manawa, e nānā kākou i nā hana OLTP.

E noʻonoʻo kākou i PostgreSQL a i ʻole MySQL. E hoʻāla aʻe i kahi manawa hoʻokele maʻamau PostgreSQL a i ʻole MySQL me nā kumuwaiwai liʻiliʻi. Ke loaʻa hou ka ukana, e hoʻopili mākou i nā replicas hou a mākou e puʻunaue ai i kahi hapa o ka ukana heluhelu. Inā ʻaʻohe noi a hoʻouka paha, hoʻopau mākou i nā replicas. ʻO ka mea mua ka haku, a ʻo ke koena he kope.

Hoʻokō ʻia kēia manaʻo ma kahi waihona i kapa ʻia ʻo Aurora Serverless AWS. He maʻalahi ke kumumanaʻo: ʻae ʻia nā noi mai nā noi waho e ka ʻauwaʻa proxy. Ke ʻike nei i ka piʻi ʻana o ka ukana, hoʻokaʻawale ʻo ia i nā kumuwaiwai computing mai nā manawa liʻiliʻi i hoʻomehana mua ʻia - hana ʻia ka pilina me ka wikiwiki. Hana ʻia nā hana hoʻopau ma ke ʻano like.

Aia i loko o Aurora ka manaʻo o Aurora Capacity Unit, ACU. ʻO kēia (conditionally) kahi laʻana (server). Hiki i kēlā me kēia ACU ke haku a i ʻole he kauā. Loaʻa i kēlā me kēia Unit Kapakahi kona RAM ponoʻī, ka mea hana a me ka disk liʻiliʻi. No laila, he haku kekahi, ʻo ke koena he mea heluhelu wale nō.

ʻO ka helu o kēia mau Aurora Capacity Units e holo nei he ʻano hoʻohālikelike. ʻO ka nui liʻiliʻi hiki ke hoʻokahi a i ʻole ʻole (ma kēia hihia, ʻaʻole hana ka waihona inā ʻaʻohe noi).

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

Ke loaʻa ka waihona i nā noi, hoʻonui ka ʻauwaʻa proxy iā Aurora CapacityUnits, e hoʻonui ana i nā kumuwaiwai hana o ka ʻōnaehana. ʻO ka hiki ke hoʻonui a hoʻemi i nā kumuwaiwai e hiki ai i ka ʻōnaehana ke "juggle" i nā kumuwaiwai: hōʻike maʻalahi i nā ACU hoʻokahi (e hoʻololi iā lākou me nā mea hou) a ʻōwili i nā mea hou i kēia manawa i nā kumuwaiwai i hoʻihoʻi ʻia.

Hiki i ka waihona Aurora Serverless ke hoʻonui i ka ukana heluhelu. Akā ʻaʻole ʻōlelo pololei ka palapala i kēia. Hiki paha iā lākou ke hāpai i kahi haku nui. ʻAʻohe kupua.

Ua kūpono kēia waihona e pale aku i ka hoʻolilo ʻana i nā kālā nui ma nā ʻōnaehana me ka hiki ʻole ke ʻike. No ka laʻana, i ka wā e hana ai i ka MVP a i ʻole ke kūʻai aku ʻana i nā pūnaewele kāleka ʻoihana, ʻaʻole mākou e manaʻo i kahi ukana paʻa. No laila, inā ʻaʻohe komo, ʻaʻole mākou e uku no nā manawa. Ke hiki mai ka ukana i manaʻo ʻole ʻia, no ka laʻana ma hope o ka hālāwai kūkā a i ʻole ka hoʻolaha hoʻolaha hoʻolaha, kipa ka lehulehu o ka poʻe i ka pūnaewele a piʻi nui ka ukana, lawe ʻo Aurora Serverless i kēia ukana a hoʻopili koke i nā kumuwaiwai nalo (ACU). A laila hala ka ʻaha kūkā, poina nā mea a pau e pili ana i ka prototype, hele pōʻeleʻele nā ​​kikowaena (ACU), a hāʻule nā ​​kumukūʻai i ka ʻole - kūpono.

ʻAʻole kūpono kēia hāʻina no ka haʻawe kiʻekiʻe paʻa no ka mea ʻaʻole ia e hoʻonui i ka haʻawe kākau. Loaʻa kēia mau pilina a pau a me ka wehe ʻana i nā kumuwaiwai ma ka mea i kapa ʻia ʻo "scale point" - kahi manawa i ka wā i kākoʻo ʻole ʻia ai ka waihona e kahi kālepa a i ʻole nā ​​​​papakaukau pōkole. No ka laʻana, i loko o hoʻokahi pule ʻaʻole hiki ke kau ʻia ka pae ʻana, a hana ke kumu ma nā kumuwaiwai like a ʻaʻole hiki ke hoʻonui a ʻaelike paha.

ʻAʻohe mea kilokilo - he PostgreSQL maʻamau. Akā ʻo ke kaʻina hana o ka hoʻohui ʻana i nā mīkini a me ka hoʻokaʻawale ʻana iā lākou he ʻāpana automated.

Serverless ma ka hoʻolālā

ʻO Aurora Serverless kahi waihona kahiko i kākau hou ʻia no ke ao e hoʻohana pono i kekahi o nā pono o Serverless. A i kēia manawa e haʻi aku wau iā ʻoe e pili ana i ke kumu, i kākau mua ʻia no ke ao, no ke ala serverless - Serverless-by-design. Ua hoʻomohala koke ʻia me ka ʻole o ka manaʻo e holo ia ma nā kikowaena kino.

Kapa ʻia kēia kumu ʻo Snowflake. He ʻekolu kī kī.

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

ʻO ka mua he poloka metadata. He lawelawe hoʻomanaʻo wikiwiki kēia e hoʻoponopono i nā pilikia me ka palekana, metadata, nā kālepa, a me ka huli ʻana i ka nīnau (e hōʻike ʻia ma ke kiʻi ma ka hema).

ʻO ka lua o ka poloka he pūʻulu o nā puʻupuʻu virtual computing no ka helu ʻana (ma ke kiʻi he pūʻulu o nā pōʻai polū).

ʻO ke kolu o ka poloka he ʻōnaehana mālama ʻikepili ma muli o S3. ʻO S3 kahi waihona mea ʻole ma AWS, ʻano like me ka Dropbox dimensionless no ka ʻoihana.

E ʻike kākou pehea e hana ai ʻo Snowflake, me ka manaʻo he hoʻomaka anu. ʻO ia hoʻi, aia kahi waihona, hoʻokomo ʻia ka ʻikepili i loko, ʻaʻohe nīnau e holo ana. No laila, inā ʻaʻohe noi i ka waihona, a laila ua hoʻāla mākou i ka lawelawe Metadata wikiwiki i ka hoʻomanaʻo (poloka mua). A loaʻa iā mākou kahi waihona S3, kahi i mālama ʻia ai ka ʻikepili papa, hoʻokaʻawale ʻia i nā micropartitions i kapa ʻia. No ka maʻalahi: inā loaʻa i ka papaʻaina nā kālepa, a laila ʻo nā micropartitions nā lā o nā kālepa. ʻO kēlā me kēia lā kahi micropartition ʻokoʻa, kahi faila ʻokoʻa. A i ka wā e hana ai ka ʻikepili i kēia ʻano, uku wale ʻoe no ka wahi i noho ʻia e ka ʻikepili. Eia kekahi, haʻahaʻa loa ka uku no kēlā me kēia noho (ʻoi aku ka noʻonoʻo ʻana i ka hoʻopili koʻikoʻi). Ke hana mau nei ka lawelawe metadata, akā ʻaʻole pono ʻoe i nā kumuwaiwai he nui no ka hoʻopaʻa ʻana i nā nīnau, a hiki ke manaʻo ʻia ka lawelawe ʻo shareware.

E noʻonoʻo kākou ua hele mai kahi mea hoʻohana i kā mākou waihona a hoʻouna i kahi nīnau SQL. Hoʻouna koke ʻia ka nīnau SQL i ka lawelawe Metadata no ka hana ʻana. No laila, i ka loaʻa ʻana o kahi noi, e loiloi kēia lawelawe i ka noi, nā ʻikepili i loaʻa, nā ʻae o ka mea hoʻohana a, inā maikaʻi nā mea a pau, e huki i kahi hoʻolālā no ka hoʻoponopono ʻana i ka noi.

Ma hope aʻe, hoʻomaka ka lawelawe i ka hoʻomaka ʻana o ka puʻupuʻu computing. ʻO ka pūʻulu helu helu he pūʻulu o nā kikowaena e hana ana i nā helu. ʻO ia hoʻi, he pūʻulu kēia e hiki ke loaʻa iā 1 server, 2 server, 4, 8, 16, 32 - e like me kou makemake. Hoʻolei ʻoe i kahi noi a hoʻomaka koke ka hoʻomaka ʻana o kēia pūʻulu. He mau kekona maoli.

Ma ke ala i ka ʻikepili serverless - pehea a no ke aha

A laila, ma hope o ka hoʻomaka ʻana o ka puʻupuʻu, e hoʻomaka nā micropartitions e hoʻokō i kāu noi e kope ʻia i loko o ka pūʻulu mai S3. ʻO ia hoʻi, e noʻonoʻo kākou no ka hoʻokō ʻana i kahi nīnau SQL pono ʻoe i ʻelua ʻāpana mai ka papaʻaina a hoʻokahi mai ka lua. I kēia hihia, e kope ʻia nā ʻāpana pono ʻekolu wale nō i ka hui, ʻaʻole nā ​​papa a pau. ʻO ia ke kumu, a no ka mea aia nā mea a pau i loko o kahi kikowaena data a hoʻopili ʻia e nā ala wikiwiki loa, hiki koke ke kaʻina hana hoʻoili holoʻokoʻa: i kekona, ʻaʻole loa i nā minuke, ke ʻole mākou e kamaʻilio e pili ana i kekahi mau noi monstrous. No laila, kope ʻia nā micropartitions i ka puʻupuʻu computing, a, i ka pau ʻana, hoʻokō ʻia ka nīnau SQL ma kēia pūʻulu helu. Hiki i ka hopena o kēia noi ke hoʻokahi laina, mau laina a i ʻole papa - hoʻouna ʻia lākou i waho i ka mea hoʻohana i hiki iā ia ke hoʻoiho iā ia, hōʻike iā ia i kāna mea hana BI, a i ʻole hoʻohana ma kekahi ʻano ʻē aʻe.

ʻAʻole hiki i kēlā me kēia nīnau SQL ke heluhelu wale i nā hōʻuluʻulu mai ka ʻikepili i hoʻouka mua ʻia, akā e hoʻouka / hana i nā ʻikepili hou i ka waihona. ʻO ia hoʻi, hiki ke lilo i nīnau, no ka laʻana, hoʻokomo i nā moʻolelo hou i kahi papa ʻē aʻe, e alakaʻi ana i ka ʻike ʻana o kahi pākuʻi hou ma ka puʻupuʻu computing, a, ma ka huli ʻana, mālama ʻia i loko o kahi waihona S3 hoʻokahi.

ʻO ka hiʻohiʻona i hōʻike ʻia ma luna, mai ka hiki ʻana mai o ka mea hoʻohana i ka hoʻāla ʻana o ka pūʻulu, hoʻouka ʻana i ka ʻikepili, ka hoʻokō ʻana i nā nīnau, ka loaʻa ʻana o nā hopena, ua uku ʻia ma ka uku no nā minuke o ka hoʻohana ʻana i ka puʻupuʻu kamepiula hoʻokiʻekiʻe, hale waihona kālā. Hoʻololi ʻia ka helu ma muli o ka AWS zone a me ka nui o ka puʻupuʻu, akā ma ka awelika he mau kālā i kēlā me kēia hola. ʻO ka puʻupuʻu o nā mīkini ʻehā ʻoi aku ka pālua o ke kumukūʻai ma mua o ka pūʻulu o nā mīkini ʻelua, a ʻo ka pūʻulu o nā mīkini ʻewalu ʻoi aku ka pālua. Loaʻa nā koho o nā mīkini 16, 32, ma muli o ka paʻakikī o nā noi. Akā ke uku wale nei ʻoe i kēlā mau minuke i ka wā e holo maoli ana ka puʻupuʻu, no ka mea, inā ʻaʻohe noi, ʻano lawe ʻoe i kou mau lima, a ma hope o 5-10 mau minuke o ke kali ʻana (kahi hoʻohālikelike configurable) e hele ma kāna iho. hoʻokuʻu i nā kumuwaiwai a lilo i manuahi.

ʻO kahi hiʻohiʻona maoli maoli ka wā e hoʻouna ai ʻoe i kahi noi, ʻo ka puʻupuʻu pops, ʻōlelo ʻia, i ka minuke, helu ʻia i kekahi minuke, a laila ʻelima mau minuke e pani ai, a hoʻopau ʻoe i ka uku ʻana i ʻehiku mau minuke o ka hana o kēia hui, a ʻaʻole no nā mahina a me nā makahiki.

ʻO ka hiʻohiʻona mua i wehewehe ʻia me ka hoʻohana ʻana iā Snowflake i kahi hoʻonohonoho hoʻohana hoʻokahi. I kēia manawa, e noʻonoʻo kākou he nui nā mea hoʻohana, kahi kokoke i ke ʻano maoli.

E ʻōlelo mākou he nui nā mea loiloi a me nā hōʻike Tableau e hoʻopā mau nei i kā mākou waihona me ka nui o nā nīnau noiʻi SQL maʻalahi.

Eia kekahi, e ʻōlelo mākou he mau ʻepekema Data inventive mākou e hoʻāʻo nei e hana i nā mea monstrous me ka ʻikepili, hana me nā ʻumi o Terabytes, hoʻopaʻa i nā piliona a me nā trillions o nā lālani ʻikepili.

No nā ʻano hana ʻelua i hōʻike ʻia ma luna, ua ʻae ʻo Snowflake iā ʻoe e hoʻāla i kekahi mau puʻupuʻu kamepiula kūʻokoʻa o nā mana like ʻole. Eia kekahi, hana kaʻawale kēia mau puʻupuʻu helu, akā me ka ʻikepili maʻamau.

No ka nui o nā nīnau māmā, hiki iā ʻoe ke hoʻāla i 2-3 mau puʻupuʻu liʻiliʻi, ma kahi o 2 mau mīkini i kēlā me kēia. Hiki ke hoʻokō ʻia kēia ʻano, ma waena o nā mea ʻē aʻe, me ka hoʻohana ʻana i nā hoʻonohonoho aunoa. No laila, ʻōlelo ʻoe, “Snowflake, e hoʻāla i kahi puʻupuʻu liʻiliʻi. Inā piʻi ka haʻawe ma luna o kekahi ʻāpana, e hoʻāla i kahi lua like, ʻekolu. Ke hoʻomaka ka haʻahaʻa e hāʻule, e kinai i ke kaumaha." No laila, ʻaʻohe nui o ka poʻe loiloi e hele mai a hoʻomaka e nānā i nā hōʻike, ua lawa nā kumuwaiwai i kēlā me kēia kanaka.

I ka manawa like, inā e hiamoe ana ka poʻe loiloi a ʻaʻohe mea e nānā i nā hōʻike, hiki i nā puʻupuʻu ke hele pōʻeleʻele loa, a haʻalele ʻoe i ka uku ʻana iā lākou.

I ka manawa like, no nā nīnau koʻikoʻi (mai ka Data Scientists), hiki iā ʻoe ke hoʻāla i hoʻokahi puʻupuʻu nui loa no nā mīkini 32. E uku ʻia kēia pūʻulu no kēlā mau minuke a me nā hola ke holo nei kāu noi nui ma laila.

ʻO ka manawa i hōʻike ʻia ma luna nei e hiki ai iā ʻoe ke hoʻokaʻawale i ka 2 wale nō, akā ʻoi aku ka nui o nā ʻano hana i loko o nā pūʻulu (ETL, nānā, hōʻike materialization, ...).

E hōʻuluʻulu kākou i ka Snowflake. Hoʻohui ka waihona i kahi manaʻo nani a me kahi hoʻokō hana. Ma ManyChat, hoʻohana mākou iā Snowflake e kālailai i nā ʻikepili āpau i loaʻa iā mākou. ʻAʻole mākou ʻekolu pūʻulu, e like me ka laʻana, akā mai 5 a 9, o nā ʻano like ʻole. Loaʻa iā mākou nā mīkini 16, 2-mīkini, a me nā mīkini 1 liʻiliʻi loa no kekahi mau hana. Hāʻawi maikaʻi lākou i ka ukana a ʻae iā mākou e mālama nui.

Hoʻonui maikaʻi ka waihona i ka ukana heluhelu a kākau. He ʻokoʻa nui kēia a he holomua nui hoʻi i hoʻohālikelike ʻia i ka "Aurora", nāna i lawe i ka ukana heluhelu. Hāʻawi ʻo Snowflake iā ʻoe e hoʻonui i kāu haʻawina kākau me kēia mau pūʻulu helu. ʻO ia, e like me kaʻu i ʻōlelo ai, hoʻohana mākou i kekahi mau pūʻulu ma ManyChat, hoʻohana nui ʻia nā pūʻulu liʻiliʻi a super-liʻiliʻi no ETL, no ka hoʻouka ʻana i ka ʻikepili. A ke noho nei nā mea noiʻi ma nā puʻupuʻu waena, ʻaʻole i hoʻopilikia ʻia e ka ukana ETL, no laila e hana wikiwiki lākou.

No laila, kūpono ka waihona no nā hana OLAP. Eia nō naʻe, ʻaʻole hiki ke hoʻohana ʻia no nā hana OLTP. ʻO ka mea mua, he kolamu kēia waihona, me nā hopena a pau. ʻO ka lua, ʻo ka hoʻokokoke ponoʻī, inā no kēlā me kēia noi, inā pono, e hoʻāla ʻoe i kahi pūʻulu computing a hoʻoheheʻe ʻia me ka ʻikepili, akā naʻe, ʻaʻole lawa ka wikiwiki no nā ukana OLTP. He mea maʻamau ke kali kekona no nā hana OLAP, akā no nā hana OLTP ʻaʻole ia e ʻae ʻia; ʻoi aku ka maikaʻi o 100 ms, a i ʻole 10 ms ʻoi aku ka maikaʻi.

ʻO ka hopena

Hiki ke loaʻa kahi waihona serverless ma ka māhele ʻana i ka waihona i nā ʻāpana Stateless a Stateful. Ua ʻike paha ʻoe i loko o nā hiʻohiʻona āpau i luna, ʻo ka Stateful hapa, ʻōlelo ʻia, mālama i nā micro-partitions ma S3, a ʻo Stateless ka mea hoʻoponopono, hana pū me ka metadata, mālama i nā pilikia palekana e hiki ke hāpai ʻia e like me nā lawelawe Stateless kūʻokoʻa māmā.

Hiki ke ʻike ʻia ka hoʻokō ʻana i nā nīnau SQL e like me nā lawelawe mokuʻāina māmā e hiki ke pahū i ke ʻano serverless, e like me Snowflake computing clusters, hoʻoiho wale i ka ʻikepili kūpono, hoʻokō i ka nīnau a "hele i waho."

Loaʻa i nā ʻikepili pae hana ʻole server no ka hoʻohana ʻana, ke hana nei lākou. Ua mākaukau kēia mau ʻikepili serverless e lawelawe i nā hana OLAP. ʻO ka mea pōʻino, no nā hana OLTP ua hoʻohana ʻia lākou ... me nā nuances, no ka mea aia nā palena. Ma kekahi ʻaoʻao, he hōʻemi kēia. Akā, ma kekahi ʻaoʻao, he manawa kūpono kēia. Malia paha e loaʻa i kekahi o ka poʻe heluhelu kahi ala e hana ai i kahi waihona OLTP me ka ʻole o ka server, me ka ʻole o nā palena o Aurora.

Manaʻo wau ua ʻike ʻoe he hoihoi. Serverless ka wā e hiki mai ana :)

Source: www.habr.com

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