මෙම දත්ත සමුදාය ගිනිගෙන ඇත...

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...

මම තාක්ෂණික කතාවක් කියන්නම්.

වසර ගණනාවකට පෙර, මම සහයෝගීතා විශේෂාංග සහිත යෙදුමක් සංවර්ධනය කරමින් සිටියෙමි. එය මුල් ප්‍රතික්‍රියා සහ CouchDB හි පූර්ණ විභවයෙන් ප්‍රයෝජන ගත් පරිශීලක-හිතකාමී පර්යේෂණාත්මක තොගයක් විය. එය JSON හරහා තථ්‍ය කාලීන දත්ත සමමුහුර්ත කළේය OT. එය සමාගම තුළ අභ්‍යන්තරව භාවිතා කරන ලද නමුත් අනෙකුත් ක්ෂේත්‍රවල එහි පුළුල් අදාළත්වය සහ විභවය පැහැදිලි විය.

මෙම තාක්‍ෂණය අනාගත ගනුදෙනුකරුවන්ට විකිණීමට උත්සාහ කරන අතරතුර, අපට අනපේක්ෂිත බාධාවක් ඇති විය. ආදර්ශන වීඩියෝවේ, අපගේ තාක්‍ෂණය විශිෂ්ට ලෙස පෙනෙන අතර ක්‍රියා කළේය, එහි කිසිදු ගැටළුවක් නොමැත. වීඩියෝව එය ක්‍රියා කරන ආකාරය හරියටම පෙන්නුම් කළ අතර කිසිවක් අනුකරණය නොකළේය. අපි වැඩසටහන භාවිතා කිරීම සඳහා යථාර්ථවාදී දර්ශනයක් ඉදිරිපත් කර කේතනය කළෙමු.

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...
ඇත්ත වශයෙන්ම, මෙය ගැටලුව බවට පත් විය. අපගේ ආදර්ශනය අනෙක් සියල්ලන්ම ඔවුන්ගේ යෙදුම් අනුකරණය කළ ආකාරයටම ක්‍රියා කළේය. විශේෂයෙන්, විශාල මාධ්‍ය ගොනු වුවද, තොරතුරු ක්ෂණිකව A සිට B දක්වා මාරු විය. ලොග් වීමෙන් පසු, එක් එක් පරිශීලකයා නව ඇතුළත් කිරීම් දුටුවේය. යෙදුම භාවිතා කරමින්, ගමේ කොතැනක හෝ අන්තර්ජාල සම්බන්ධතාවයට බාධා ඇති වුවද, විවිධ පරිශීලකයින්ට එකම ව්‍යාපෘතිවල පැහැදිලිව එකට වැඩ කළ හැකිය. පසු ප්‍රයෝගවල කැපූ ඕනෑම නිෂ්පාදන වීඩියෝවක මෙය ව්‍යංගයෙන් ගම්‍ය වේ.

Refresh බට්න් එක මොකටද කියලා හැමෝම දැනගෙන හිටියට ඇත්තටම කවුරුත් තේරුම් ගත්තෙ නෑ එයාලා අපෙන් ගොඩනගන්න ඉල්ලපු වෙබ් ඇප්ලිකේෂන් සාමාන්‍යයෙන් තමන්ගෙ සීමාවන්ට යටත් වෙන බව. තවද ඒවා තවදුරටත් අවශ්‍ය නොවන්නේ නම්, පරිශීලක අත්දැකීම සම්පූර්ණයෙන්ම වෙනස් වනු ඇත. ඔවුන් වැඩිපුරම දුටුවේ ඔවුන් කතා කරන පුද්ගලයින් සඳහා සටහන් තැබීමෙන් ඔවුන්ට “චැට්” කළ හැකි බවයි, එබැවින් මෙය ස්ලැක්ට වඩා වෙනස් වන්නේ කෙසේදැයි ඔවුන් කල්පනා කළහ. පිව්!

එදිනෙදා සමමුහුර්ත සැලසුම් කිරීම

ඔබට මෘදුකාංග සංවර්ධනය පිළිබඳ අත්දැකීම් තිබේ නම්, බොහෝ දෙනෙකුට අතුරු මුහුණතක පින්තූරයක් දෙස බලා එය සමඟ අන්තර් ක්‍රියා කිරීමේදී එය කරන්නේ කුමක්ද යන්න තේරුම් ගත නොහැකි බව මතක තබා ගැනීම ස්නායු කම්පන සහගත විය යුතුය. වැඩසටහන ඇතුලෙම වෙන දේ නොකියා ඉන්න. ඒ බව දැනගන්න පුළුවන් සිදුවීම බොහෝ දුරට සිදු විය නොහැකි දේ සහ සිදු නොවිය යුතු දේ දැනගැනීමේ ප්‍රතිඵලයකි. මෙය අවශ්ය වේ මානසික ආකෘතිය මෘදුකාංගය කරන දේ පමණක් නොව, එහි තනි කොටස් සම්බන්ධීකරණය කර එකිනෙකා සමඟ සන්නිවේදනය කරන ආකාරය ද වේ.

මේ සඳහා සම්භාව්‍ය උදාහරණයක් වන්නේ පරිශීලකයෙකු දෙස බලා සිටීමයි spinner.gif, අන්තිමට වැඩේ කවදා ඉවර වෙයිද කියලා කල්පනා කරනවා. ක්‍රියාවලිය බොහෝ විට සිරවී ඇති බවත්, gif තිරයෙන් කිසිදා අතුරුදහන් නොවන බවත් සංවර්ධකයාට වැටහෙන්නට ඇත. මෙම සජීවිකරණය රැකියාවක් ක්‍රියාත්මක කිරීම අනුකරණය කරයි, නමුත් එහි තත්වයට සම්බන්ධ නොවේ. එවැනි අවස්ථාවලදී, පරිශීලක ව්යාකූලත්වයේ තරම ගැන මවිතයට පත් වූ සමහර තාක්ෂණික ශිල්පීන් ඔවුන්ගේ ඇස් පෙරළීමට කැමතියි. කෙසේ වෙතත්, ඔවුන්ගෙන් කී දෙනෙක් භ්‍රමණය වන ඔරලෝසුව පෙන්වා එය සත්‍ය වශයෙන්ම නිශ්චල බව පවසන්නේදැයි බලන්න.

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...
තත්‍ය කාලීන වටිනාකමේ සාරය මෙයයි. මේ දිනවල තත්‍ය කාලීන දත්ත සමුදායන් තවමත් භාවිතා කරන්නේ ඉතා අඩුවෙන් වන අතර බොහෝ අය ඒවා දෙස බලන්නේ සැකයෙන්. මෙම දත්ත සමුදායන් බොහොමයක් NoSQL විලාසය දෙසට දැඩි ලෙස නැඹුරු වන අතර, එම නිසා ඔවුන් සාමාන්‍යයෙන් අමතක වී ඇති Mongo මත පදනම් වූ විසඳුම් භාවිතා කරයි. කෙසේ වෙතත්, මට මෙයින් අදහස් කරන්නේ CouchDB සමඟ වැඩ කිරීමට පහසු වීම මෙන්ම සමහර නිලධාරින්ට වඩා දත්ත පිරවිය හැකි ව්‍යුහයන් සැලසුම් කිරීමට ඉගෙන ගැනීමයි. මම හිතන්නේ මම මගේ කාලය හොඳින් පාවිච්චි කරනවා කියලා.

නමුත් මේ පෝස්ට් එකේ ඇත්ත මාතෘකාව තමයි මම අද පාවිච්චි කරන්නේ. තේරීමෙන් නොව, උදාසීන ලෙස සහ අන්ධ ලෙස ව්‍යවහාරික ආයතනික ප්‍රතිපත්ති නිසා ය. එබැවින් මම සමීපව සම්බන්ධිත Google තත්‍ය කාලීන දත්ත සමුදා නිෂ්පාදන දෙකක සම්පූර්ණයෙන්ම සාධාරණ සහ අපක්ෂපාතී සැසඳීමක් ලබා දෙන්නෙමි.

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...
දෙදෙනාගේම නම්වල ගිනි යන වචනය ඇත. එක දෙයක් මම ආදරෙන් මතක් කරනවා. මට දෙවෙනි කාරණය නම් වෙනස් ආකාරයක ගින්නක්. මම ඔවුන්ගේ නම් කීමට ඉක්මන් නොවෙමි, මන්ද මා එසේ කළ පසු, අපි පළමු විශාල ගැටලුවට මුහුණ දෙනු ඇත: නම්.

පළමුවැන්නා ලෙස හැඳින්වේ Firebase Real-Time Database, සහ දෙවන - Firebase Cloud Firestore. ඒ දෙකම නිෂ්පාදන වේ Firebase කට්ටලය ගූගල්. ඔවුන්ගේ API පිළිවෙලින් හැඳින්වේ firebase.database(…) и firebase.firestore(…).

මෙය සිදු වූ නිසා තත්‍ය කාලීන දත්ත සමුදාය - එය මුල් පිටපත පමණි ෆයර්බෙස් 2014 දී Google විසින් එය මිලදී ගැනීමට පෙර. එවිට Google සමාන්තර නිෂ්පාදනයක් ලෙස නිර්මාණය කිරීමට තීරණය කළේය පිටපතක් Firebase විශාල දත්ත සමාගමක් මත පදනම් වූ අතර එය වලාකුළක් සහිත Firestore ලෙස නම් කරන ලදී. ඔබ තවමත් ව්‍යාකූල වී නැති බව මම විශ්වාස කරමි. ඔබ තවමත් ව්‍යාකූල නම්, කරදර නොවන්න, මම ලිපියේ මෙම කොටස දස වතාවක් නැවත ලිව්වෙමි.

ඔබ සඳහන් කළ යුතු නිසා ෆයර්බෙස් Firebase ප්‍රශ්නයේ, සහ ගිනි උදුන Firebase පිළිබඳ ප්‍රශ්නයක, අවම වශයෙන් වසර කිහිපයකට පෙර Stack Overflow පිළිබඳව ඔබට අවබෝධ කර දීමට.

නරකම මෘදුකාංග නම් කිරීමේ අත්දැකීම සඳහා සම්මානයක් තිබුනේ නම්, මෙය අනිවාර්යයෙන්ම තරඟකරුවන්ගෙන් එකක් වනු ඇත. මෙම නම් අතර Hamming දුර ප්රමාණය ඉතා කුඩා වන අතර, ඔවුන්ගේ හිස තවත් නමක් ගැන සිතමින් සිටින අතර, එක් නමක් ඇඟිලිවලින් ටයිප් කරන පළපුරුදු ඉංජිනේරුවන් පවා ව්යාකූල කරයි. මේවා හොඳ චේතනාවෙන් කරන ලද සැලසුම් වන අතර ඒවා ඉතා අවාසනාවන්ත ලෙස අසාර්ථක වේ; දත්ත ගබඩාව ගිනි ගනී යන අනාවැකිය ඔවුන් ඉටු කළහ. ඒ වගේම මම විහිළු කරන්නේ නැහැ. මේ නාම යෝජනා ක්‍රමය ගෙනා පුද්ගලයා ලේ, දහඩිය, කඳුළු ඇති කළා.

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...

පිරරික් ජයග්රහණය

ෆයර්ස්ටෝර් කියලා කෙනෙක් හිතනවා ඇති ආදේශ කිරීම Firebase, එහි ඊළඟ පරම්පරාවෙන් පැවත එන නමුත් එය නොමඟ යවන සුළුය. Firebase සඳහා සුදුසු ආදේශකයක් ලෙස Firestore සහතික නොවේ. යමෙකු එයින් රසවත් සියල්ල කපා හැර, ඉතිරි බොහෝමයක් විවිධ ආකාරවලින් ව්‍යාකූල කර ඇති බව පෙනේ.

කෙසේ වෙතත්, නිෂ්පාදන දෙක දෙස ක්ෂණික බැල්මක් ඔබව ව්‍යාකූල කළ හැකිය: මූලික වශයෙන් එකම API හරහා සහ එකම දත්ත සමුදා සැසියකදී පවා ඔවුන් එකම දේ කරන බව පෙනේ. වෙනස්කම් සියුම් වන අතර ඒවා හෙළිදරව් වන්නේ විස්තීර්ණ ලියකියවිලි පිළිබඳ ප්රවේශමෙන් සංසන්දනාත්මක අධ්යයනයකින් පමණි. නැතහොත් ඔබ Firebase මත හොඳින් ක්‍රියා කරන කේතය තොට කිරීමට උත්සාහ කරන විට එය Firestore සමඟ ක්‍රියා කරයි. එතකොටත් ඔයාලට තේරෙනවා ඔයා තත්‍ය කාලීනව Mouse එකෙන් drag and drop කරන්න හදනකොටම database interface එක දැල්වෙන බව. මම නැවත කියනවා, මම විහිළුවක් කරන්නේ නැහැ.

ෆයර්බේස් සේවාලාභියා ආචාරශීලී වන්නේ එය වෙනස් කිරීම් ස්වාරක්ෂක වන අතර අවසාන ලිවීමේ මෙහෙයුමට ප්‍රමුඛත්වය දෙන යාවත්කාලීන ස්වයංක්‍රීයව නැවත උත්සාහ කරයි. කෙසේ වෙතත්, Firestore එක තත්පරයකට එක් පරිශීලකයෙකුට ලේඛනයකට ලිවීමේ මෙහෙයුම් 1ක සීමාවක් ඇති අතර, මෙම සීමාව සේවාදායකය විසින් බලාත්මක කරයි. එය සමඟ වැඩ කරන විට, ඔබ ඔබේ යෙදුම ගොඩනඟා ගැනීමට උත්සාහ කරන විට පවා, එය වටා මාර්ගයක් සොයා ගැනීම සහ යාවත්කාලීන ගාස්තු සීමාවක් ක්‍රියාත්මක කිරීම ඔබට භාරයි. එනම්, ෆයර්ස්ටෝර් යනු තත්‍ය කාලීන සේවාලාභියෙකු නොමැති තත්‍ය කාලීන දත්ත ගබඩාවකි, එය API භාවිතා කරන එකක් ලෙස වෙස්වළා ගනී.

මෙන්න අපි Firestore's raison d'être හි පළමු සලකුණු දැකීමට පටන් ගනිමු. මම වැරදි විය හැක, නමුත් Google හි කළමනාකාරීත්වයේ ඉහල සිටින කෙනෙකු මිලදී ගැනීමෙන් පසු Firebase දෙස බලා සරලව පැවසුවේ, “නැහැ, අපොයි, නැහැ. මෙය පිළිගත නොහැකි ය. මගේ නායකත්වය යටතේ නොවේ."

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...
ඔහු තම කුටියෙන් පෙනී සිට මෙසේ ප්‍රකාශ කළේය.

“එක් විශාල JSON ලේඛනයක්? නැත. ඔබ දත්ත වෙනම ලේඛනවලට බෙදනු ඇත, ඒ සෑම එකක්ම මෙගාබයිට් 1 කට වඩා වැඩි නොවේ.

ප්‍රමාණවත් තරම් අභිප්‍රේරිත පරිශීලක පදනමක් සමඟ පළමු හමුවීමෙන් එවැනි සීමාවක් නොනැසී පවතින බව පෙනේ. එය බව ඔබ දන්නවා. උදාහරණයක් ලෙස, වැඩ කිරීමේදී, අපට ඉදිරිපත් කිරීම් එකහමාරකට වඩා ඇති අතර මෙය සම්පූර්ණයෙන්ම සාමාන්‍ය වේ.

මෙම සීමාව සමඟින්, දත්ත ගබඩාවේ ඇති එක් "ලේඛනයක්" පරිශීලකයෙකු විසින් ලේඛනයක් ලෙස හැඳින්විය හැකි කිසිදු වස්තුවකට සමාන නොවන බව පිළිගැනීමට ඔබට බල කෙරෙනු ඇත.

"ප්‍රත්‍යාවර්තීව වෙනත් මූලද්‍රව්‍ය අඩංගු විය හැකි අරා අරා? නැත. අරා වල අඩංගු වන්නේ දෙවියන් වහන්සේ අදහස් කළ පරිදි ස්ථාවර දිග වස්තූන් හෝ සංඛ්‍යා පමණි."

එබැවින් ඔබ GeoJSON ඔබේ Firestore තුළට දැමීමට බලාපොරොත්තු වූයේ නම්, මෙය කළ නොහැකි බව ඔබට පෙනී යනු ඇත. ඒකමාන නොවන කිසිවක් පිළිගත නොහැකිය. ඔබ JSON තුළ Base64 සහ/හෝ JSON වලට කැමති යැයි මම බලාපොරොත්තු වෙමි.

“HTTP, විධාන රේඛා මෙවලම් හෝ පරිපාලක පැනලය හරහා JSON ආනයනය සහ අපනයනය කරන්නද? නැත. ඔබට Google Cloud Storage වෙත දත්ත අපනයනය කිරීමට සහ ආයාත කිරීමට පමණක් හැකි වනු ඇත. ඒකට තමයි දැන් කියන්නේ, මම හිතන්නේ. තවද මම "ඔබ" යැයි පැවසූ විට මම ආමන්ත්‍රණය කරන්නේ ව්‍යාපෘති හිමිකරු අක්තපත්‍ර ඇති අය පමණි. අනිත් හැමෝටම ගිහින් ටිකට් හදන්න පුළුවන්."

ඔබට පෙනෙන පරිදි, FireBase දත්ත ආකෘතිය විස්තර කිරීමට පහසුය. එහි JSON යතුරු URL මාර්ග සමඟ සම්බන්ධ කරන එක් විශාල JSON ලේඛනයක් අඩංගු වේ. ඔබ සමඟ ලියන්නේ නම් HTTP PUT в / FireBase පහත පරිදි වේ:

{
  "hello": "world"
}

GET /hello නැවත පැමිණෙනු ඇත "world". මූලික වශයෙන් එය ඔබ බලාපොරොත්තු වන ආකාරයටම ක්‍රියා කරයි. FireBase වස්තු එකතුව /my-collection/:id JSON ශබ්දකෝෂයකට සමානයි {"my-collection": {...}} මූලයේ, එහි අන්තර්ගතය ලබා ගත හැකිය /my-collection:

{
  "id1": {...object},
  "id2": {...object},
  "id3": {...object},
  // ...
}

පද්ධතියට සම්මත විසඳුමක් ඇති, එක් එක් ඇතුල් කිරීම සඳහා ගැටුම් රහිත හැඳුනුම්පතක් තිබේ නම් මෙය හොඳින් ක්‍රියා කරයි.

වෙනත් වචන වලින් කිවහොත්, දත්ත සමුදාය 100% JSON(*) අනුකූල වන අතර CouchDB වැනි HTTP සමඟ හොඳින් ක්‍රියා කරයි. නමුත් මූලික වශයෙන් ඔබ එය භාවිතා කරන්නේ websockets, අවසරය සහ දායකත්වයන් සාරාංශ කරන තත්‍ය කාලීන API හරහාය. පරිපාලක මණ්ඩලයට හැකියාවන් දෙකම ඇත, තත්‍ය කාලීන සංස්කරණය සහ JSON ආයාත/අපනයනය යන දෙකටම ඉඩ සලසයි. ඔබ ඔබේ කේතය තුළද එයම කරන්නේ නම්, පැච් සහ වෙනස JSON ස්ථීර තත්ත්වය හැසිරවීමේ සාමාන්‍ය කාර්යයන්ගෙන් 90% ක් විසඳන බව ඔබ වටහාගත් විට කොපමණ විශේෂිත කේතයක් අපතේ යනු ඇත්දැයි ඔබ පුදුමයට පත් වනු ඇත.

Firestore දත්ත ආකෘතිය JSON හා සමාන වේ, නමුත් සමහර තීරණාත්මක ආකාරවලින් වෙනස් වේ. arrays ඇතුලේ arrays නැතිකම මම කලින්ම කිව්වා. උප-එකතු සඳහා ආදර්ශය වන්නේ ඒවා පළමු පන්තියේ සංකල්ප වන අතර, ඒවා අඩංගු JSON ලේඛනයෙන් වෙන්ව. මේ සඳහා සූදානම් කළ අනුක්‍රමිකකරණයක් නොමැති බැවින්, දත්ත ලබා ගැනීමට සහ ලිවීමට විශේෂිත කේත මාර්ගයක් අවශ්‍ය වේ. ඔබේම එකතු කිරීම් සැකසීමට, ඔබ ඔබේම ස්ක්‍රිප්ට් සහ මෙවලම් ලිවිය යුතුය. පරිපාලක පැනලය ඔබට වරකට එක් ක්ෂේත්‍රයක් පමණක් කුඩා වෙනස්කම් සිදු කිරීමට ඉඩ සලසයි, සහ ආනයන/අපනයන හැකියාවන් නොමැත.

ඔවුන් තත්‍ය කාලීන NoSQL දත්ත ගබඩාවක් ගෙන එය ස්වයංක්‍රීයව සම්බන්ධ වීම සහ වෙනම JSON නොවන තීරුවක් සහිත මන්දගාමී SQL නොවන එකක් බවට පත් කළහ. GraftQL වගේ දෙයක්.

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...

උණුසුම් ජාවා

ෆයර්ස්ටෝර් වඩාත් විශ්වාසදායක සහ පරිමාණය කළ හැකි එකක් විය යුතු නම්, උත්ප්‍රාසය නම් සාමාන්‍ය සංවර්ධකයෙකු කොටුවෙන් පිටත FireBase තෝරා ගැනීමට වඩා අඩු විශ්වාසදායක විසඳුමක් සමඟ අවසන් වීමයි. Grumpy Database Administrator ට අවශ්‍ය මෘදුකාංග වර්ගය සඳහා නිෂ්පාදනයේ හොඳ යැයි සැලකෙන ස්ථානය සඳහා හුදෙක් යථාර්ථවාදී නොවන උත්සාහයක මට්ටමක් සහ කුසලතා ප්‍රගුණයක් අවශ්‍ය වේ. සංවර්ධන මෙවලම් සහ වාදකයක් නොමැති නම්, HTML5 කැන්වස් ෆ්ලෑෂ් සඳහා ආදේශකයක් නොවන ආකාරයට මෙය සමාන වේ. එපමනක් නොව, සාමාන්‍ය ව්‍යාපාරික පරිශීලකයා සමඟ සරලව නොගැලපෙන දත්ත සංශුද්ධතාවය සහ වඳ වලංගුකරණය සඳහා වූ ආශාව තුළ Firestore ගිලී ඇත. වැඩ කිරීමට ආදරෙයි: ඔහු සඳහා සෑම දෙයක්ම විකල්ප වේ, මන්ද අවසානය දක්වා සියල්ල කෙටුම්පතකි.

FireBase හි ප්‍රධාන අවාසිය නම් බොහෝ වෙබ් සංවර්ධකයින් වෙනස් නොවන බව දැන ගැනීමට පෙර සේවාලාභියා එහි කාලයට වසර කිහිපයකට පෙර නිර්මාණය කර තිබීමයි. මේ නිසා, FireBase ඔබ දත්ත වෙනස් කරන බව උපකල්පනය කරයි, එබැවින් පරිශීලකයා විසින් සපයනු ලබන වෙනස් නොවන බව ප්‍රයෝජනයට නොගනී. අතිරේකව, එය පරිශීලකයා වෙත ලබා දෙන ස්නැප්ෂොට් වල දත්ත නැවත භාවිතා නොකරන අතර, එය වෙනස වඩාත් අපහසු කරයි. විශාල ලේඛන සඳහා, එහි වෙනස් කළ හැකි වෙනස්වීම් මත පදනම් වූ ගනුදෙනු යාන්ත්‍රණය ප්‍රමාණවත් නොවේ. යාලුවනේ, අපි දැනටමත් තියෙනවා WeakMap JavaScript වල. එය සුවපහසුයි.

ඔබ දත්ත වලට අපේක්ෂිත හැඩය ලබා දෙන්නේ නම් සහ ගස් විශාල නොවන්නේ නම්, මෙම ගැටළුව මඟහරවා ගත හැකිය. නමුත් සංවර්ධකයින් දත්ත සමුදාය සැලසුම් කිරීම පිළිබඳ බරපතල ප්‍රායෝගික උපදෙස් සමඟින් වෙනස් නොවන බව භාවිතා කරන ඉතා හොඳ සේවාදායක API එකක් නිකුත් කළහොත් FireBase වඩාත් සිත්ගන්නාසුළු වේ දැයි මම කුතුහලයෙන් සිටිමි. ඒ වෙනුවට, ඔවුන් නොකැඩූ දේ නිවැරදි කිරීමට උත්සාහ කරන බවක් පෙනෙන්නට තිබූ අතර, එය වඩාත් නරක අතට හැරුණි.

ෆයර්ස්ටෝර් නිර්මාණය පිටුපස ඇති සියලුම තර්ක මම නොදනිමි. කළු පෙට්ටිය තුළ ඇති වන චේතනාවන් ගැන අනුමාන කිරීම ද විනෝදයේ කොටසකි. අතිශයින්ම සමාන නමුත් අසමසම දත්ත සමුදායන් දෙකක මෙම සංකලනය ඉතා දුර්ලභ ය. කවුරුහරි හිතුවා වගේ: "ෆයර්බේස් යනු අපට Google Cloud හි අනුකරණය කළ හැකි කාර්යයක් පමණි", නමුත් සැබෑ ලෝක අවශ්‍යතා හඳුනාගැනීම හෝ එම අවශ්‍යතා සියල්ල සපුරාලන ප්‍රයෝජනවත් විසඳුම් නිර්මාණය කිරීමේ සංකල්පය තවමත් සොයාගෙන නොමැත. “සංවර්ධකයින්ට ඒ ගැන සිතීමට ඉඩ දෙන්න. UI එක ලස්සන කරන්න... තව ගින්දර එකතු කරන්න පුළුවන්ද?”

දත්ත ව්‍යුහයන් ගැන මට කරුණු කිහිපයක් තේරෙනවා. මම අනිවාර්යයෙන්ම "එක් විශාල JSON ගසක ඇති සියල්ල" සංකල්පය දකින්නේ දත්ත සමුදායෙන් මහා පරිමාණ ව්‍යුහය පිළිබඳ ඕනෑම හැඟීමක් වියුක්ත කිරීමේ උත්සාහයක් ලෙස ය. ඕනෑම සැක සහිත දත්ත ව්‍යුහයක් සමඟ සරලව මුහුණ දීමට මෘදුකාංග අපේක්ෂා කිරීම හුදෙක් උමතුවකි. දේවල් කෙතරම් නරක විය හැකිදැයි මට සිතා ගැනීමටවත් අවශ්‍ය නැත, මම දැඩි කේත විගණනය කර ඇත ඔයාලා හීනෙකින්වත් නොහිතපු දේවල් මම දැක්කා. නමුත් හොඳ ව්‍යුහයන් කෙබඳුදැයි මම දනිමි, ඒවා භාවිතා කරන ආකාරය и මෙය කළ යුත්තේ ඇයි?. ෆයර්ස්ටෝර් තර්කානුකූලව පෙනෙන ලෝකයක් මට සිතාගත හැකි අතර එය නිර්මාණය කළ අය ඔවුන් හොඳ කාර්යයක් කළා යැයි සිතනු ඇත. නමුත් අපි මේ ලෝකයේ ජීවත් වෙන්නේ නැහැ.

FireBase හි විමසුම් සහාය ඕනෑම ප්‍රමිතියකින් දුර්වල වන අතර ප්‍රායෝගිකව නොපවතී. එය අනිවාර්යයෙන්ම වැඩිදියුණු කිරීම හෝ අවම වශයෙන් සංශෝධනය කිරීම අවශ්ය වේ. නමුත් ෆයර්ස්ටෝර් වඩා හොඳ නැත, මන්ද එය සාමාන්‍ය SQL හි ඇති එකම ඒකමාන දර්ශකවලට සීමා වේ. මිනිසුන් අවුල් සහගත දත්ත මත ධාවනය කරන විමසුම් ඔබට අවශ්‍ය නම්, ඔබට සම්පූර්ණ පෙළ සෙවීම, බහු-පරාස පෙරහන් සහ අභිරුචි පරිශීලක-නිර්වචනය කළ ඇණවුම් අවශ්‍ය වේ. සමීපව පරීක්ෂා කර බැලීමේදී, සරල SQL හි ක්‍රියාකාරිත්වය තමන්ටම සීමා වී ඇත. මීට අමතරව, නිෂ්පාදනයේදී මිනිසුන්ට ධාවනය කළ හැකි එකම SQL විමසුම් වේගවත් විමසුම් වේ. ඔබට ස්මාර්ට් දත්ත ව්‍යුහයන් සමඟ අභිරුචි සුචිගත කිරීමේ විසඳුමක් අවශ්‍ය වනු ඇත. අනෙක් සියල්ල සඳහා, අවම වශයෙන් වර්ධක සිතියම් අඩු කිරීමක් හෝ ඊට සමාන දෙයක් තිබිය යුතුය.

ඔබ මේ පිළිබඳ තොරතුරු සඳහා Google Docs සොයන්නේ නම්, ඔබ BigTable සහ BigQuery වැනි දෙයක දිශාවට යොමු වනු ඇතැයි බලාපොරොත්තු වේ. කෙසේ වෙතත්, මෙම විසඳුම් සියල්ලම ඉතා ඝන ආයතනික විකුණුම් ප්‍රභාකරන් සමඟ ඇති අතර ඔබ ඉක්මනින් ආපසු හැරී වෙනත් දෙයක් සෙවීමට පටන් ගනී.

තත්‍ය කාලීන දත්ත සමුදායක් සමඟ ඔබට අවශ්‍ය අවසාන දෙය වන්නේ කළමනාකරණ වැටුප් පරිමාණයන් මත සිටින පුද්ගලයින් විසින් සාදන ලද දෙයකි.

(*) මේක විහිළුවක්, එහෙම දෙයක් නැහැ 100% JSON අනුකූල වේ.

දැන්වීම් ප්රචාරණ අයිතිවාසිකම්

සොයමින් වී.ඩී.එස් දෝශ නිරාකරණ ව්‍යාපෘති සඳහා, සංවර්ධන සහ සත්කාරක සඳහා සේවාදායකයක්? ඔබ නියත වශයෙන්ම අපගේ සේවාලාභියා වේ 🙂 විවිධ වින්‍යාසයන්, ප්‍රති-ඩීඩීඕඑස් සහ වින්ඩෝස් බලපත්‍රවල සේවාදායකයන් සඳහා දෛනික මිල ගණන් දැනටමත් මිලට ඇතුළත් කර ඇත.

මෙම දත්ත සමුදාය ගිනිගෙන ඇත...

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න