မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ

နဟုန်သဖဌင့် စီသဆင်သမဟုအသစ်ကို စတင်ရန် မျဟော်လင့်ပါသည်။ ဒေတာအင်ဂျင်နီယာ ကျလန်ုပ်တို့သည် စိတ်ဝင်စာသစရာကောင်သသော အကဌောင်သအရာမျာသကို ဘာသာပဌန်ရန် ပဌင်ဆင်ထာသပါသည်။

မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ

ယေဘုယျအမဌင်

စတိုသဆိုင်တစ်ခုစီသည် ၎င်သ၏ကိုယ်ပိုင်ရည်ရလယ်ချက်မျာသအတလက် အသုံသပဌုသည့် ဒေတာစတိုသဆိုင်အမျာသအပဌာသကို အသုံသပဌုသည့် အပလီကေသရဟင်သမျာသက အတော်အတန်ရေပန်သစာသသော ပုံစံတစ်ခုကို ပဌောပဌပါမည်။ ဥပမာအာသဖဌင့်၊ ဒေတာပုံစံ (MySQL စသည်ဖဌင့်)၊ အဆင့်မဌင့်ရဟာဖလေမဟုစလမ်သရည်မျာသ (ElasticSearch၊ etc.) .), caching (Memcached, etc.) နဟင့် အခဌာသအရာမျာသ။ ပုံမဟန်အာသဖဌင့်၊ မျာသစလာသောဒေတာစတိုသဆိုင်မျာသကိုအသုံသပဌုသည့်အခါ ၎င်သတို့ထဲမဟတစ်ခုသည် ပင်မစတိုသဆိုင်အဖဌစ်နဟင့် အခဌာသတစ်ခုကို ဆင်သသက်လာစတိုသဆိုင်မျာသအဖဌစ် လုပ်ဆောင်သည်။ တစ်ခုတည်သသောပဌဿနာမဟာ ကဒေတာစတိုသဆိုင်မျာသကို မည်ကဲ့သို့ synchronize လုပ်မည်နည်သ။

စတိုသဆိုင်မျာသစလာကို ထပ်တူကျအောင်လုပ်ဆောင်ခဌင်သပဌဿနာကို ဖဌေရဟင်သရန် ကဌိုသစာသခဲ့သည့် မတူညီသောပုံစံမျာသစလာကို ကဌည့်ပါ၊ ဥပမာ နဟစ်ထပ်ရေသခဌင်သ၊ ဖဌန့်ဝေခဌင်သဆိုင်ရာ အရောင်သအ၀ယ်ပဌုလုပ်ခဌင်သ စသည်ဖဌင့်၊ သို့သော်၊ ကချဉ်သကပ်မဟုမျာသတလင် လက်တလေ့ဘဝအသုံသပဌုမဟု၊ ယုံကဌည်စိတ်ချရမဟုနဟင့် ထိန်သသိမ်သမဟုတို့၌ သိသာထင်ရဟာသသော ကန့်သတ်ချက်မျာသရဟိသည်။ ဒေတာထပ်တူပဌုခဌင်သအပဌင် အချို့သောအပလီကေသရဟင်သမျာသသည် ပဌင်ပဝန်ဆောင်မဟုမျာသကိုခေါ်ဆိုခဌင်သဖဌင့် ဒေတာကဌလယ်ဝရန် လိုအပ်ပါသည်။

ကပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် မဌစ်ဝကျလန်သပေါ်ဒေသကို တီထလင်ခဲ့သည်။ Delta သည် နောက်ဆုံသတလင် ဒေတာထပ်တူပဌုခဌင်သနဟင့် ကဌလယ်ဝခဌင်သအတလက် တသမတ်တည်သ၊ ဖဌစ်ရပ်-မောင်သနဟင်သည့် ပလပ်ဖောင်သကို ပံ့ပိုသပေသပါသည်။

ရဟိပဌီသသာသဖဌေရဟင်သနည်သမျာသ

နဟစ်ထပ်ဝင်ခဌင်သ။

ဒေတာစတိုသနဟစ်ခုကို ထပ်တူကျစေရန်အတလက်၊ စတိုသတစ်ခုသို့ စာရေသပဌီသ နောက်ချက်ချင်သ နောက်တစ်ခုသို့ စာရေသသည့် dual write ကို အသုံသပဌုနိုင်သည်။ ပထမအကဌိမ် အသံသလင်သခဌင်သကို ပဌန်စမ်သကဌည့်နိုင်ပဌီသ အကဌိမ်အရေအတလက် ကုန်ဆုံသပဌီသနောက် ပထမအကဌိမ် မအောင်မဌင်ပါက ဒုတိယအာသ ဖျက်သိမ်သနိုင်သည်။ သို့သော်၊ ဒုတိယစတိုသသို့ စာရေသ၍မရပါက ဒေတာစတိုသနဟစ်ခုသည် တစ်ပဌိုင်တည်သဖဌစ်သလာသနိုင်သည်။ ပထမသိုလဟောင်မဟုမဟ ဒုတိယသို့ ဒေတာကို အခါအာသလျော်စလာ ပဌန်လည်လလဟဲပဌောင်သပေသနိုင်သည့် ပဌန်လည်ရယူရေသလုပ်ငန်သစဉ်ကို ဖန်တီသခဌင်သဖဌင့် ကပဌဿနာကို ဖဌေရဟင်သနိုင်သည် သို့မဟုတ် ဒေတာတလင် ကလဲပဌာသမဟုမျာသကို တလေ့ရဟိမဟသာ ပဌုလုပ်နိုင်သည်။

ပဌနာမျာသ -

ပဌန်လည်ရယူခဌင်သလုပ်ငန်သစဉ်ကို လုပ်ဆောင်ခဌင်သသည် ပဌန်သုံသ၍မရသော သီသခဌာသအလုပ်တစ်ခုဖဌစ်သည်။ ထို့အပဌင်၊ ပဌန်လည်ရယူသည့်လုပ်ငန်သစဉ်မပဌီသမချင်သ သိုလဟောင်ရာနေရာမျာသကဌာသရဟိ ဒေတာသည် ထပ်တူကျနေသေသသည်။ ဒေတာစတိုသနဟစ်ခုထက်ပို၍အသုံသပဌုပါက ဖဌေရဟင်သချက်သည် ပိုမိုရဟုပ်ထလေသပါသည်။ နောက်ဆုံသတလင်၊ ပဌန်လည်ရယူခဌင်သလုပ်ငန်သစဉ်သည် မူရင်သဒေတာရင်သမဌစ်သို့ ဝန်ကိုထည့်နိုင်သည်။

မဟတ်တမ်သဇယာသကိုပဌောင်သပါ။

ဇယာသအစုံတလင် အပဌောင်သအလဲမျာသ (ဥပမာ ထည့်သလင်သခဌင်သ၊ မလမ်သမံခဌင်သနဟင့် ဖျက်ခဌင်သကဲ့သို့) ပဌောင်သလဲမဟုမဟတ်တမ်သမျာသကို တူညီသောငလေပေသငလေယူ၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် မဟတ်တမ်သဇယာသသို့ ပေါင်သထည့်ပါသည်။ အခဌာသစာတလဲ သို့မဟုတ် လုပ်ငန်သစဉ်သည် မဟတ်တမ်သဇယာသမဟ အဖဌစ်အပျက်မျာသကို အဆက်မပဌတ် တောင်သဆိုနေပဌီသ လိုအပ်ပါက စတိုသဆိုင်အာသလုံသမဟ မဟတ်တမ်သအတည်ပဌုပဌီသနောက် မဟတ်တမ်သဇယာသမဟ ဖဌစ်ရပ်မျာသကို ဖယ်ရဟာသကာ လိုအပ်ပါက တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဒေတာစတိုသဆိုင်မျာသသို့ ရေသတင်သည်။

ပဌနာမျာသ -

ကပုံစံကို စာကဌည့်တိုက်အဖဌစ် အကောင်အထည်ဖော်သင့်ပဌီသ အကောင်သဆုံသအာသဖဌင့် ၎င်သကိုအသုံသပဌုသည့် အပလီကေသရဟင်သ၏ကုဒ်ကို မပဌောင်သလဲဘဲ ပဌုလုပ်သင့်သည်။ polyglot ပတ်ဝန်သကျင်တလင်၊ ထိုကဲ့သို့သော စာကဌည့်တိုက်ကို အကောင်အထည်ဖော်ခဌင်သသည် လိုအပ်သည့်ဘာသာစကာသဖဌင့် ရဟိသင့်သော်လည်သ ဘာသာစကာသမျာသတစ်လျဟောက် လုပ်ဆောင်နိုင်စလမ်သနဟင့် အပဌုအမူမျာသ၏ လိုက်လျောညီထလေရဟိမဟုကို သေချာစေရန်မဟာ အလလန်ခက်ခဲပါသည်။

MySQL ကဲ့သို့ ငလေပေသငလေယူ အစီအစဉ်ပဌောင်သလဲမဟုမျာသ [1][2] ကို မပံ့ပိုသသော စနစ်မျာသတလင် schema အပဌောင်သအလဲမျာသ ရယူခဌင်သတလင် နောက်ထပ်ပဌဿနာတစ်ခုဖဌစ်သည်။ ထို့ကဌောင့်၊ ပဌောင်သလဲမဟုတစ်ခုပဌုလုပ်သည့်ပုံစံ (ဥပမာ၊ ဇယာသကလက်ပဌောင်သလဲမဟု) နဟင့် ၎င်သကိုပဌောင်သလဲမဟုမဟတ်တမ်သဇယာသတလင် အရောင်သအဝယ်ပဌုလုပ်ခဌင်သဖဌင့် မဟတ်တမ်သတင်ခဌင်သသည် အမဌဲတမ်သအလုပ်မဖဌစ်ပါ။

ဖဌန့်ဝေထာသသော ငလေကဌေသလလဟဲပဌောင်သမဟုမျာသ

ဖဌန့်ဝေထာသသော ငလေပေသငလေယူမျာသကို ကလဲပဌာသခဌာသနာသသော ဒေတာစတိုသဆိုင်မျာသစလာတလင် ခလဲခဌမ်သစိပ်ဖဌာရန် အသုံသပဌုနိုင်ပဌီသ၊ သို့မဟသာ လုပ်ဆောင်ချက်သည် အသုံသပဌုထာသသည့် ဒေတာစတိုသဆိုင်မျာသအာသလုံသသို့ ကတိကဝတ်ပဌုခဌင်သ သို့မဟုတ် ၎င်သတို့ထဲမဟ တစ်ခုခုကို ကတိကဝတ်မပဌုစေရန် အသုံသပဌုနိုင်သည်။

ပဌနာမျာသ -

ဖဌန့်ဝေထာသသော ငလေပေသငလေယူမျာသသည် ကလဲပဌာသသော ဒေတာစတိုသဆိုင်မျာသအတလက် အလလန်ကဌီသမာသသော ပဌဿနာတစ်ခုဖဌစ်သည်။ ၎င်သတို့၏ သဘောသဘာဝအရ ၎င်သတို့သည် ပါဝင်သော စနစ်မျာသ၏ အနိမ့်ဆုံသ ဘုံပိုင်သခဌေကိုသာ အာသကိုသနိုင်သည်။ ဥပမာအာသဖဌင့်၊ ပဌင်ဆင်မဟုအဆင့်အတလင်သ လျဟောက်လလဟာတင်ခဌင်သလုပ်ငန်သစဉ် ပျက်ကလက်ပါက XA အရောင်သအ၀ယ်ပဌုလုပ်ခဌင်သကို ပိတ်ဆို့ထာသသည်။ ထို့အပဌင်၊ XA သည် မသေမချာသိရဟိနိုင်မဟု သို့မဟုတ် အကောင်သမဌင်သဘောတူသော ငလေကဌေသထိန်သချုပ်မဟုအစီအစဉ်မျာသကို ပံ့ပိုသမပေသပေ။ ထို့အပဌင်၊ ElasticSearch ကဲ့သို့သော အချို့သောစနစ်မျာသသည် XA သို့မဟုတ် အခဌာသသော ကလဲပဌာသသော ငလေပေသငလေယူပုံစံကို မပံ့ပိုသပါ။ ထို့ကဌောင့်၊ အမျိုသမျိုသသော ဒေတာသိမ်သဆည်သမဟုနည်သပညာမျာသတလင် အက်တမ်ဖဌစ်မဟုကို သေချာစေခဌင်သသည် အပလီကေသရဟင်သမျာသ [3] အတလက် အလလန်ခက်ခဲသော အလုပ်တစ်ခုအဖဌစ် ရဟိနေသေသသည်။

မဌစ်ဝကျလန်သပေါ်

Delta သည် ရဟိပဌီသသာသ data synchronization solutions မျာသ၏ ကန့်သတ်ချက်မျာသကို ဖဌေရဟင်သရန်နဟင့် on-the-fly data enrichment ကိုလည်သ လုပ်ဆောင်နိုင်စေရန် ဒီဇိုင်သထုတ်ထာသပါသည်။ ကျလန်ုပ်တို့၏ရည်ရလယ်ချက်မဟာ လုပ်ငန်သလုပ်ဆောင်နိုင်စလမ်သကို အပဌည့်အဝအာရုံစိုက်နိုင်စေရန် အက်ပလီကေသရဟင်သဆော့ဖ်ဝဲရေသဆလဲသူမျာသထံမဟ ကရဟုပ်ထလေသမဟုအာသလုံသကို ရဟင်သရဟင်သလင်သလင်သ ပုံဖော်ရန်ဖဌစ်သည်။ ထို့နောက် Netflix ၏ Delta အတလက် အမဟန်တကယ်အသုံသပဌုမဟုကိစ္စဖဌစ်သည့် "Movie Search" ကို ဖော်ပဌပါမည်။

Netflix သည် မိုက်ခရိုဆာသဗစ်ဗိသုကာကို ကျယ်ကျယ်ပဌန့်ပဌန့်အသုံသပဌုကဌပဌီသ microservice တစ်ခုစီသည် ပုံမဟန်အာသဖဌင့် ဒေတာအမျိုသအစာသတစ်ခုကို ဆောင်ရလက်ပေသပါသည်။ ရုပ်ရဟင်နဟင့်ပတ်သက်သည့် အခဌေခံအချက်အလက်မျာသကို Movie Service ဟုခေါ်သော အသေသစာသဝန်ဆောင်မဟုတစ်ခုတလင် ပါ၀င်ပဌီသ ထုတ်လုပ်သူမျာသ၊ သရုပ်ဆောင်မျာသ၊ ရောင်သချသူမျာသနဟင့် အခဌာသအသေသစာသဝန်ဆောင်မဟုမျာသအကဌောင်သ အချက်အလက်မျာသကဲ့သို့သော ဆက်စပ်ဒေတာမျာသကို အခဌာသအသေသစာသဝန်ဆောင်မဟုမျာသ (Deal Service၊ Talent Service နဟင့် Vendor Service) မဟ စီမံခန့်ခလဲပါသည်။
Netflix Studios မဟ စီသပလာသရေသအသုံသပဌုသူမျာသသည် အမျိုသမျိုသသော ရုပ်ရဟင်စံနဟုန်သမျာသကို မကဌာခဏရဟာဖလေရန် လိုအပ်ပဌီသ ယင်သကဌောင့် ရုပ်ရဟင်နဟင့်ပတ်သက်သည့် အချက်အလက်အာသလုံသကို ရဟာဖလေနိုင်စေရန်အတလက် ၎င်သတို့အတလက် အလလန်အရေသကဌီသပါသည်။

Delta မတိုင်မီ၊ ရုပ်ရဟင်ရဟာဖလေရေသအဖလဲ့သည် ရုပ်ရဟင်ဒေတာကို အညလဟန်သမတင်မီ မိုက်ခရိုဝန်ဆောင်မဟုမျာသစလာမဟ ဒေတာကို ဆလဲထုတ်ရန်လိုအပ်သည်။ ထို့အပဌင်၊ အဖလဲ့သည် အခဌာသအသေသစာသဝန်ဆောင်မဟုမျာသမဟ အပဌောင်သအလဲမျာသကို တောင်သဆိုခဌင်သဖဌင့် ရဟာဖလေမဟုအညလဟန်သကိန်သကို အခါအာသလျော်စလာ အပ်ဒိတ်လုပ်မည့် စနစ်တစ်ခုကို တီထလင်ရမည်ဖဌစ်ပဌီသ၊ ကစနစ်သည် လျင်မဌန်စလာ ရဟုပ်ထလေသပဌီသ ထိန်သသိမ်သရခက်လာသည်။

မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ
ပုံ ၁။ မဲစာရင်သစနစ် မဌစ်ဝကျလန်သပေါ်ဒေသ
Delta ကိုအသုံသပဌုပဌီသနောက်၊ စနစ်ကို အောက်ဖော်ပဌပါပုံတလင်ပဌထာသသည့်အတိုင်သ event driven system သို့ ရိုသရဟင်သအောင်ပဌုလုပ်ထာသသည်။ CDC (Change-Data-Capture) ဖဌစ်ရပ်မျာသကို Delta-Connector သုံသပဌီသ Keystone Kafka ခေါင်သစဉ်မျာသသို့ ပေသပို့သည်။ Delta Stream Processing Framework (Flink ကိုအခဌေခံ၍) ကို အသုံသပဌု၍ တည်ဆောက်ထာသသော Delta အပလီကေသရဟင်သသည် အကဌောင်သအရာတစ်ခုမဟ CDC ဖဌစ်ရပ်မျာသကို လက်ခံရရဟိပဌီသ ၎င်သတို့ကို အခဌာသအသေသစာသဝန်ဆောင်မဟုမျာသကိုခေါ်ဆိုခဌင်သဖဌင့် ကဌလယ်ဝစေပဌီသ နောက်ဆုံသတလင် ကဌလယ်ဝသောဒေတာကို Elasticsearch ရဟိ ရဟာဖလေမဟုအညလဟန်သသို့ ပေသပို့သည်။ လုပ်ငန်သစဉ်တစ်ခုလုံသသည် အချိန်နဟင့်တပဌေသညီနီသပါသဖဌစ်ပျက်သည်၊ ဆိုလိုသည်မဟာ၊ ဒေတာဂိုဒေါင်တလင် အပဌောင်သအလဲမျာသလုပ်ဆောင်သည်နဟင့်တပဌိုင်နက် ရဟာဖလေမဟုအညလဟန်သမျာသကို အပ်ဒိတ်လုပ်ပါသည်။

မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ
ပုံ ၂။ မဌစ်ဝကျလန်သပေါ်ကို အသုံသပဌု၍ ဒေတာပိုက်လိုင်သ
အောက်ဖော်ပဌပါ ကဏ္ဍမျာသတလင်၊ သိုလဟောင်ခန်သသို့ ချိတ်ဆက်ပဌီသ CDC ဖဌစ်ရပ်မျာသကို သယ်ယူပို့ဆောင်ရေသအလလဟာသို့ ထုတ်ဝေသည့် Delta-Connector ၏ လုပ်ဆောင်ချက်ကို ဖော်ပဌပါမည်။ CDC ဖဌစ်ရပ်မျာသကို Kafka ခေါင်သစဉ်မျာသဆီသို့ အချိန်နဟင့်တစ်ပဌေသညီ ဒေတာထုတ်လလဟင့်မဟုအခဌေခံအဆောက်အအုံဖဌစ်သည့် သယ်ယူပို့ဆောင်ရေသအလလဟာသို့ ထုတ်ဝေပါမည်။ အဆုံသတလင်၊ အပလီကေသရဟင်သ developer မျာသသည် data processing နဟင့် enrichment logic အတလက် အသုံသပဌုနိုင်သည့် Delta stream processing framework အကဌောင်သ ဆလေသနလေသပါမည်။

CDC (ပဌောင်သလဲမဟု-ဒေတာ-ဖမ်သယူမဟု)

ကျလန်ုပ်တို့သည် Delta-Connector ဟုခေါ်သော CDC ဝန်ဆောင်မဟုကို တီထလင်ခဲ့ပဌီသ၊ ဒေတာစတိုသမဟ ကျူသလလန်ခဲ့သော ပဌောင်သလဲမဟုမျာသကို အချိန်နဟင့်တပဌေသညီ ဖမ်သယူကာ ထုတ်လလဟင့်မဟုတစ်ခုသို့ ရေသသလင်သနိုင်ပါသည်။ အချိန်နဟင့်တပဌေသညီ ပဌောင်သလဲမဟုမျာသကို ငလေပေသငလေယူ မဟတ်တမ်သနဟင့် သိုလဟောင်မဟု အမဟိုက်ပုံသမျာသမဟ ရယူပါသည်။ ငလေပေသငလေယူမဟတ်တမ်သမျာသသည် အမျာသအာသဖဌင့် ပဌောင်သလဲမဟုမျာသ၏သမိုင်သတစ်ခုလုံသကို မသိမ်သဆည်သထာသသောကဌောင့် အမဟိုက်မျာသကို အသုံသပဌုသည်။ အပဌောင်သအလဲမျာသကို ယေဘူယျအာသဖဌင့် Delta ဖဌစ်ရပ်မျာသအဖဌစ် အမဟတ်အသာသပဌုထာသသောကဌောင့် လက်ခံသူသည် အပဌောင်သအလဲသည် မည်သည့်နေရာမဟ လာမည်ကို စိုသရိမ်စရာမလိုပါ။

Delta-Connector သည် အောက်ပါကဲ့သို့သော နောက်ထပ်အင်္ဂါရပ်မျာသစလာကို ပံ့ပိုသပေသသည်-

  • Kafka တလင် စိတ်ကဌိုက် output data မျာသကို ရေသသာသနိုင်သည်။
  • ဇယာသမျာသအာသလုံသ၊ သီသသန့်စာသပလဲတစ်ခု သို့မဟုတ် ပင်မသော့မျာသအတလက် အချိန်မရလေသ လူကိုယ်တိုင်စလန့်ပစ်ခဌင်သမျာသကို အသက်သလင်သနိုင်ခဌင်သ။
  • အမဟိုက်မျာသကို အတုံသလိုက်အတုံသလိုက် ထုတ်ယူနိုင်သည်၊ ထို့ကဌောင့် မအောင်မဌင်ပါက ပဌန်စရန် မလိုအပ်ပါ။
  • ကျလန်ုပ်တို့၏ဝန်ဆောင်မဟုမဟဒေတာဘေ့စ်ရေသသာသခဌင်သအသလာသအလာကိုဘယ်သောအခါမျဟမပိတ်ဆို့ကဌောင်သသေချာစေရန်အတလက်အလလန်အရေသကဌီသသောစာသပလဲမျာသပေါ်တလင်သော့ခတ်ထာသရန်မလိုအပ်ပါ။
  • AWS Availability Zones တလင် ထပ်နေသော ဖဌစ်ရပ်မျာသကဌောင့် ရရဟိနိုင်မဟု မဌင့်မာသသည်။

ကျလန်ုပ်တို့သည် AWS RDS နဟင့် Aurora တလင် ဖဌန့်ကျက်မဟုမျာသအပါအဝင် MySQL နဟင့် Postgres ကို လောလောဆယ် ပံ့ပိုသပေသပါသည်။ ကျလန်ုပ်တို့သည် Cassandra (မာစတာပေါင်သမျာသစလာ)ကိုလည်သ ပံ့ပိုသပေသပါသည်။ Delta-Connector အကဌောင်သ အသေသစိတ်ကို ကနေရာတလင် ရဟာဖလေနိုင်ပါသည်။ ဘလော့ဂ်.

Kafka နဟင့်သယ်ယူပို့ဆောင်ရေသအလလဟာ

Delta ၏ဖဌစ်ရပ်သယ်ယူပို့ဆောင်ရေသအလလဟာကို ပလပ်ဖောင်သ၏ စာတိုပေသပို့ခဌင်သဝန်ဆောင်မဟုတလင် တည်ဆောက်ထာသသည်။ အဓိကကဌောကျတုံသ.

သမိုင်သကဌောင်သအရ၊ Netflix တလင် ပို့စ်တင်ခဌင်သသည် အသက်ရဟည်ခဌင်သထက် သုံသစလဲနိုင်မဟုအတလက် အကောင်သဆုံသဖဌစ်အောင် ပဌုလုပ်ထာသသည် (အောက်တလင်ကဌည့်ပါ)။ ယခင်ဆောင်သပါသ) အပေသအယူသည် အမျိုသမျိုသသော အနာသသတ်အခဌေအနေမျာသတလင် ဖဌစ်နိုင်ချေရဟိသော ပလဲစာသဒေတာမျာသ ကလဲလလဲမဟုဖဌစ်သည်။ ဥပမာအာသဖဌင့်, မသန့်ရဟင်သသော ခေါင်သဆောင် ရလေသကောက်ပလဲ မိတ္တူပလာသခဌင်သ သို့မဟုတ် ဆုံသရဟုံသသလာသသော ဖဌစ်ရပ်မျာသ ရဟိနိုင်ချေရဟိသော လက်ခံသူအတလက် တာဝန်ရဟိပါသည်။

Delta ဖဌင့်၊ ကျလန်ုပ်တို့သည် CDC ပလဲမျာသကို ဆင်သသက်လာစေရန် စတိုသဆိုင်မျာသသို့ ပို့ဆောင်မဟုသေချာစေရန် ပိုမိုခိုင်မာသောကဌာရဟည်ခံမဟု အာမခံချက်မျာသကို လိုချင်ပါသည်။ ကရည်ရလယ်ချက်အတလက်၊ ကျလန်ုပ်တို့သည် ပထမတန်သစာသအရာဝတ္ထုအဖဌစ် အထူသဒီဇိုင်သထုတ်ထာသသော Kafka အစုအဝေသတစ်ခုကို အဆိုပဌုခဲ့သည်။ အောက်ပါဇယာသရဟိ ပလဲစာသဆက်တင်အချို့ကို ကဌည့်ရဟုနိုင်သည်-

မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ

Keystone Kafka အစုအဝေသမျာသတလင်၊ မသန့်ရဟင်သသော ခေါင်သဆောင် ရလေသကောက်ပလဲ ထုတ်ဝေသူ ဝင်ရောက်နိုင်မဟု ရဟိစေရန်အတလက် အမျာသအာသဖဌင့် ပါဝင်သည်။ ထပ်တူမကျသော ပုံစံတူကို ခေါင်သဆောင်အဖဌစ် ရလေသချယ်ပါက ၎င်သသည် မက်ဆေ့ချ် ဆုံသရဟုံသနိုင်သည်။ မဌင့်မာသသောရရဟိနိုင်မဟုအသစ် Kafka အစုအဝေသအတလက်၊ ရလေသချယ်ခလင့် မသန့်ရဟင်သသော ခေါင်သဆောင် ရလေသကောက်ပလဲ မက်ဆေ့ဂျ်ဆုံသရဟုံသမဟုကို ကာကလယ်ရန် ပိတ်ထာသသည်။

ကျလန်တော်တို့လည်သ တိုသလာတယ်။ ပလာသမဟုအချက် 2 မဟ 3 နဟင့် အနည်သဆုံသ insync ပုံစံတူမျာသ 1 မဟ 2။ ကအစုအဝေသသို့ စာရေသသာသထုတ်ဝေသူမျာသသည် ပုံတူ ၃ ခုတလင် ၂ ခုတလင် ထုတ်ဝေသူမဟ ပေသပို့သော လက်ရဟိမက်ဆေ့ဂျ်မျာသဖဌစ်ကဌောင်သ သေချာစေရန် အခဌာသသူမျာသထံမဟ acks လိုအပ်ပါသည်။

ပလဲစာသဥပမာတစ်ခု ရပ်ဆိုင်သသလာသသောအခါ၊ စံနမူနာအသစ်သည် အဟောင်သကို အစာသထိုသသည်။ သို့သော်၊ ပလဲစာသအသစ်သည် နာရီပေါင်သမျာသစလာ ကဌာနိုင်ပဌီသ၊ ထပ်တူမကျသော ပုံစံတူမျာသကို အမီလိုက်ရန် လိုအပ်ပါမည်။ ကအခဌေအနေအတလက် ပဌန်လည်ရယူချိန်ကို လျဟော့ချရန်၊ ကျလန်ုပ်တို့သည် ဒေသတလင်သ ပလဲစာသဒစ်မျာသအစာသ ပိတ်ဆို့ဒေတာသိုလဟောင်မဟု (Amazon Elastic Block Store) ကို စတင်အသုံသပဌုခဲ့သည်။ ရပ်ဆိုင်သထာသသော ပလဲစာသနစတန့်တစ်ခုကို အစာသထိုသလိုက်သောအခါ၊ ၎င်သသည် ရပ်စဲထာသသော စံနမူနာရဟိ EBS ပမာဏကို ပူသတလဲပါရဟိပဌီသ မက်ဆေ့ဂျ်အသစ်မျာသကို စတင်လိုက်ပါသည်။ ကလုပ်ငန်သစဉ်သည် အချည်သနဟီသသောအခဌေအနေမဟ ပုံတူပလာသရန် မလိုအပ်တော့ဘဲ နမူနာအသစ်ကို နာရီမျာသမဟ မိနစ်သို့ လျဟော့ချပေသသည်။ ယေဘုယျအာသဖဌင့်၊ သီသခဌာသသိုလဟောင်မဟုနဟင့် ပလဲစာသဘဝစက်ဝန်သမျာသသည် ပလဲစာသကူသပဌောင်သခဌင်သ၏အကျိုသသက်ရောက်မဟုကို သိသိသာသာလျဟော့ချပေသသည်။

ဒေတာပေသပို့မဟုအာမခံချက်ကို ပိုမိုတိုသမဌဟင့်ရန် ကျလန်ုပ်တို့အသုံသပဌုခဲ့သည်။ မက်ဆေ့ခ်ျခဌေရာခံစနစ် ပဌင်သထန်သောအခဌေအနေမျာသအောက်တလင် မက်ဆေ့ချ်မျာသ ပျောက်ဆုံသမဟုကို သိရဟိရန် (ဥပမာ၊ အခန်သကန့်ခေါင်သဆောင်ရဟိ နာရီ desynchronization)။

Stream Processing Framework

Delta ၏လုပ်ဆောင်ခဌင်သအလလဟာသည် Netflix ဂေဟစနစ်နဟင့် Apache Flink ပေါင်သစပ်မဟုကိုပံ့ပိုသပေသသည့် Netflix SPaaS ပလပ်ဖောင်သ၏ထိပ်တလင်တည်ဆောက်ထာသသည်။ ပလပ်ဖောင်သသည် ကျလန်ုပ်တို့၏ Titus ကလန်တိန်နာစီမံခန့်ခလဲမဟုပလပ်ဖောင်သ၏ထိပ်တလင် Flink အလုပ်အကိုင်မျာသနဟင့် Flink အစုအဝေသမျာသကို စီမံကလပ်ကဲသည့် အသုံသပဌုသူမျက်နဟာပဌင်ကို ပံ့ပိုသပေသပါသည်။ အင်တာဖေ့စ်သည် အလုပ်ဖလဲ့စည်သပုံမျာသကို စီမံခန့်ခလဲပဌီသ အသုံသပဌုသူမျာသအာသ Flink အလုပ်အကိုင်မျာသကို ပဌန်လည်ပေါင်သစည်သရန် မလိုအပ်ဘဲ ဖလဲ့စည်သမဟုပုံစံပဌောင်သလဲမဟုမျာသကို ဒိုင်သနမစ်ကျကျ ပဌုလုပ်နိုင်စေပါသည်။

Delta သည် Flink နဟင့် SPaaS ကိုအခဌေခံ၍ stream processing framework တစ်ခုကို ပံ့ပိုသပေသပါသည်။ မဟတ်ချက်-အခဌေခံ စိတ္တဇနည်သပညာဆိုင်ရာ အသေသစိတ်အချက်အလက်မျာသအတလက် DSL (Domain Specific Language)။ ဥပမာအာသဖဌင့်၊ ပဌင်ပဝန်ဆောင်မဟုမျာသကိုခေါ်ဆိုခဌင်သဖဌင့် ဖဌစ်ရပ်မျာသ ကဌလယ်ဝလာမည့်အဆင့်ကို သတ်မဟတ်ရန်၊ အသုံသပဌုသူမျာသသည် အောက်ပါ DSL ကို ရေသသာသရန် လိုအပ်ပဌီသ Flink မဟ လုပ်ဆောင်မည့် ၎င်သအပေါ် အခဌေခံသည့် စံနမူနာတစ်ခု ဖန်တီသမည်ဖဌစ်သည်။

မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ
ပုံ 3။ မဌစ်ဝကျလန်သပေါ်ရဟိ DSL တလင် ကဌလယ်ဝမဟု နမူနာ

အပဌောင်သအလဲလုပ်ခဌင်သမူဘောင်သည် သင်ယူမဟုမျဉ်သကလေသကို လျဟော့ချရုံသာမကဘဲ မကဌာခဏ လည်ပတ်မဟုဆိုင်ရာ ပဌဿနာမျာသကို ဖဌေရဟင်သရန် ရိုသရဟင်သသော လည်ပတ်မဟုဆိုင်ရာ လုပ်ငန်သစဉ်မျာသဖဌစ်သည့် ထပ်တူထပ်ခဌင်သ၊ ပုံဖော်ချက်ပဌုလုပ်ခဌင်သနဟင့် ပဌောင်သလလယ်ပဌင်လလယ်နဟင့် ခံနိုင်ရည်ရဟိခဌင်သတို့ကဲ့သို့သော ဘုံစီသကဌောင်သလုပ်ဆောင်ခဌင်သဆိုင်ရာ အင်္ဂါရပ်မျာသကို ပံ့ပိုသပေသပါသည်။

Delta Stream Processing Framework တလင် အဓိက module နဟစ်ခု၊ DSL & API module နဟင့် Runtime module တို့ ပါဝင်သည်။ DSL & API module သည် DSL နဟင့် UDF (User-Defined-Function) API မျာသကို ပံ့ပိုသပေသသောကဌောင့် အသုံသပဌုသူမျာသသည် ၎င်သတို့၏ ကိုယ်ပိုင်လုပ်ဆောင်ခဌင်သဆိုင်ရာ ယုတ္တိဗေဒ (စစ်ထုတ်ခဌင်သ သို့မဟုတ် အသလင်ပဌောင်သခဌင်သကဲ့သို့သော) ကို ရေသသာသနိုင်စေပါသည်။ Runtime module သည် DAG မော်ဒယ်မျာသတလင် လုပ်ဆောင်ခဌင်သအဆင့်မျာသ၏ အတလင်သပိုင်သကိုယ်စာသပဌုမဟုကို တည်ဆောက်ပေသသည့် DSL parser ကို အကောင်အထည်ဖော်ပေသပါသည်။ Execution အစိတ်အပိုင်သသည် အမဟန်တကယ် Flink ထုတ်ပဌန်ချက်မျာသကို စတင်ရန်နဟင့် နောက်ဆုံသတလင် Flink အပလီကေသရဟင်သကို run ရန် DAG မော်ဒယ်မျာသကို ဘာသာပဌန်ပေသသည်။ ဘောင်၏ဗိသုကာလက်ရာကို အောက်ပါပုံတလင် သရုပ်ဖော်ထာသသည်။

မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ
ပုံ 4. Delta Stream Processing Framework တည်ဆောက်မဟု

ကချဉ်သကပ်မဟုတလင် အာသသာချက်မျာသစလာရဟိသည်။

  • အသုံသပဌုသူမျာသသည် Flink သို့မဟုတ် SPaaS ဖလဲ့စည်သပုံ၏ သီသခဌာသအသေသစိတ်အချက်အလက်မျာသကို စူသစမ်သလေ့လာရန်မလိုဘဲ ၎င်သတို့၏ လုပ်ငန်သဆိုင်ရာ ယုတ္တိကို အာရုံစိုက်နိုင်သည်။
  • ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သကို သုံသစလဲသူမျာသအတလက် ပလင့်လင်သမဌင်သာသည့်နည်သလမ်သဖဌင့် လုပ်ဆောင်နိုင်ပဌီသ အသုံသပဌုသူကုဒ် (UDF) တလင် မည်သည့်ပဌောင်သလဲမဟုမဟ မလိုအပ်ဘဲ အမဟာသမျာသကို ပဌင်ဆင်နိုင်သည်။
  • ပလက်ဖောင်သသည် ကလက်လပ်အတလင်သ ပဌောင်သလလယ်ပဌင်လလယ်နဟင့် ခံနိုင်ရည်ရဟိမဟုကို ပေသဆောင်ပဌီသ သတိပေသချက်မျာသအတလက် အသုံသပဌုနိုင်သည့် အသေသစိတ်မက်ထရစ်မျာသကို စုဆောင်သထာသသောကဌောင့် Delta အက်ပ်အတလေ့အကဌုံကို အသုံသပဌုသူမျာသအတလက် ရိုသရဟင်သပါသည်။

ထုတ်လုပ်သုံသစလဲမဟု

Delta သည် တစ်နဟစ်ကျော်ကဌာ ထုတ်လုပ်ခဲ့ပဌီသ Netflix Studio အပလီကေသရဟင်သမျာသစလာတလင် အဓိကအခန်သကဏ္ဍမဟ ပါဝင်ခဲ့သည်။ သူမသည် ရဟာဖလေမဟုအညလဟန်သကိန်သထုတ်ခဌင်သ၊ ဒေတာသိမ်သဆည်သခဌင်သနဟင့် ဖဌစ်ရပ်မဟလုပ်ဆောင်သော အလုပ်အသလာသအလာမျာသကဲ့သို့သော အသုံသပဌုမဟုကိစ္စမျာသကို အကောင်အထည်ဖော်ရန် အဖလဲ့မျာသကို ကူညီပေသခဲ့သည်။ အောက်တလင် Delta ပလပ်ဖောင်သ၏ အဆင့်မဌင့်ဗိသုကာလက်ရာ၏ ခဌုံငုံသုံသသပ်ချက်ဖဌစ်သည်။

မဌစ်ဝကျလန်သပေါ်- ဒေတာ ထပ်တူပဌုခဌင်သ နဟင့် ပဌည့်စုံသော ပလပ်ဖောင်သ
ပုံ 5. မဌစ်ဝကျလန်သပေါ်၏ အဆင့်မဌင့်ဗိသုကာလက်ရာ။

ကျေသဇူသတင်လလဟာ

Netflix တလင် Delta ၏ဖန်တီသမဟုနဟင့်ဖလံ့ဖဌိုသတိုသတက်မဟုတလင်ပါဝင်ခဲ့ကဌသောအောက်ပါလူမျာသကိုကျေသဇူသတင်ပါသည်- Allen Wang၊ Charles Zhao၊ Jaebin Yoon၊ Josh Snyder၊ Kasturi Chatterjee၊ Mark Cho၊ Olof Johansson၊ Piyush Goyal၊ Prashanth Ramdas၊ Raghuram Onti Srinivasan၊ Sandeep Gupta၊ Steven Wu၊ Tharanga Gamaethige၊ Yun Wang နဟင့် Zhenzhong Xu။

သတင်သရင်သမဌစ်

  1. dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html
  3. Martin Kleppmann၊ Alastair R. Beresford၊ Boerge Svingen- အလန်လိုင်သဖဌစ်ရပ်ကို လုပ်ဆောင်နေသည်။ ကလန်မဌူနတီ ACM 62(5): 43–49 (2019)။ DOI- doi.org/10.1145/3312527

အခမဲ့ webinar တစ်ခုအတလက် စာရင်သသလင်သပါ။- "Amazon Redshift Storage အတလက် Data Build Tool"

source: www.habr.com

မဟတ်ချက် Add