ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

လလန်ခဲ့သောသုံသနဟစ်က Yandex မဟ Viktor Tarnavsky နဟင့် Alexey Milovidov HighLoad++ ပဌောတယ်ClickHouse သည် မည်မျဟကောင်သမလန်သည်၊ ၎င်သသည် နဟေသကလေသခဌင်သမရဟိပေ။ နောက်အဆင့်မဟာ ရဟိခဲ့တယ်။ အလက်ဇန်သဒါသ Zaitsev с အစီရင်ခံစာ ပဌောင်သရလဟေ့ခဌင်သအကဌောင်သ အိမ်ကိုနဟိပ်ပါ အခဌာသသော ခလဲခဌမ်သစိတ်ဖဌာမဟု DBMS မဟ ကောက်ချက်ချသည်။ အိမ်ကိုနဟိပ်ပါဟုတ်ပါတယ်၊ ဒါပေမယ့် သိပ်အဆင်ပဌေမဟာ မဟုတ်ပါဘူသ။ 2016 တုန်သက ကုမ္ပဏီက LifeStreetအလက်ဇန်သဒါသသည် ထိုအချိန်က အလုပ်လုပ်ခဲ့သည့်နေရာ၊ multi-petabyte ခလဲခဌမ်သစိတ်ဖဌာမဟုစနစ်သို့ ပဌောင်သလဲနေသည်။ အိမ်ကိုနဟိပ်ပါမသိနိုင်သော အန္တရာယ်မျာသ ပဌည့်နဟက်နေသော စလဲမက်ဖလယ်ကောင်သသော “အဝါရောင်အုတ်လမ်သ” ဖဌစ်သည်၊ အိမ်ကိုနဟိပ်ပါ အဲဒီတုန်သက မိုင်သကလင်သတစ်ခုလိုပါပဲ။

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

Alexander သည် 2003 ခုနဟစ်ကတည်သက ဖဌန့်ဝေမဟုစနစ်မျာသဖဌင့် လုပ်ဆောင်ခဲ့ပဌီသ ကဌီသမာသသော ပရောဂျက်မျာသကို တီထလင်ခဲ့သည်။ MySQL၊ Oracle О Vertica. နောက်ဆုံသပေါ် HighLoad++ 2019 အလက်ဇန်သဒါသကို အသုံသပဌု၍ ရဟေ့ဆောင်တစ်ညသဖဌစ်သည်။ အိမ်ကိုနဟိပ်ပါဒီ DBMS က အခု ဘာလဲဆိုတာ ပဌောပဌတယ်။ ကျလန်ုပ်တို့သည် အဓိကအင်္ဂါရပ်မျာသအကဌောင်သ လေ့လာပါမည်။ အိမ်ကိုနဟိပ်ပါ: ၎င်သသည် အခဌာသစနစ်မျာသနဟင့် မည်သို့ကလာခဌာသပဌီသ မည်သည့်ကိစ္စမျာသတလင် ၎င်သကိုအသုံသပဌုရန် ပိုမိုထိရောက်မဟုရဟိသည်။ ဥပမာမျာသကို အသုံသပဌု၍ စနစ်တည်ဆောက်ခဌင်သအတလက် လတ်တလောနဟင့် ပရောဂျက်စမ်သသပ်ထာသသော အလေ့အကျင့်မျာသကို ကျလန်ုပ်တို့ ကဌည့်ရဟုပါမည်။ အိမ်ကိုနဟိပ်ပါ.


နောက်ကဌောင်သပဌန်: လလန်ခဲ့သော 3 နဟစ်ကဖဌစ်ပျက်ခဲ့သည်။

လလန်ခဲ့တဲ့ သုံသနဟစ်က ကျလန်တော်တို့ ကုမ္ပဏီကို ပဌောင်သရလဟေ့ခဲ့တယ်။ LifeStreet အပေါ် အိမ်ကိုနဟိပ်ပါ အခဌာသသော ခလဲခဌမ်သစိတ်ဖဌာသော ဒေတာဘေ့စ်မဟ၊ ကဌော်ငဌာကလန်ရက် ခလဲခဌမ်သစိတ်ဖဌာမဟု ပဌောင်သရလဟေ့ခဌင်သသည် ကကဲ့သို့ ဖဌစ်သည်-

  • ဇလန်လ 2016 ခုနဟစ် ပလင့်လင်သအရင်သအမဌစ် ပေါ်လာတယ် အိမ်ကိုနဟိပ်ပါ ကျလန်ုပ်တို့၏ ပရောဂျက်ကို စတင်ခဲ့သည်။
  • သဌဂုတ်လ။ အယူအဆသက်သေ: ကဌီသမာသသောကဌော်ငဌာကလန်ရက်၊ အခဌေခံအဆောက်အအုံနဟင့် ဒေတာ ၂၀၀-၃၀၀ တာရာဘိုက်၊
  • အောက်တိုဘာလ။ ပထမညသစလာထုတ်လုပ်မဟုဒေတာ;
  • ဒီဇင်ဘာ။ ထုတ်ကုန်အပဌည့်သလင်သမဟုသည် တစ်နေ့လျဟင် ဖဌစ်ရပ်ပေါင်သ ၁၀-၅၀ ဘီလီယံဖဌစ်သည်။
  • ဇလန်လ 2017။ အသုံသပဌုသူမျာသထံသို့ အောင်မဌင်စလာ ပဌောင်သရလဟေ့ခဌင်သ။ အိမ်ကိုနဟိပ်ပါဆာဗာ 2,5 ၏အစုအဝေသတလင် ဒေတာ 60 petabytes။

ရလဟေ့ပဌောင်သနေထိုင်မဟု လုပ်ငန်သစဉ်အတလင်သ နာသလည်မဟု တိုသပလာသလာခဲ့သည်။ အိမ်ကိုနဟိပ်ပါ ၎င်သသည် Yandex ၏အတလင်သပိုင်သပရောဂျက်တစ်ခုဖဌစ်သည်။ ထို့ကဌောင့်၊ Yandex သည် ၎င်သ၏ကိုယ်ပိုင်အတလင်သပိုင်သဖောက်သည်မျာသနဟင့် ပထမညသစလာ ကိုင်တလယ်ဖဌေရဟင်သမည်ဖဌစ်ပဌီသ ထိုမဟသာလျဟင် အသိုက်အဝန်သနဟင့် ပဌင်ပအသုံသပဌုသူမျာသ၏ လိုအပ်ချက်မျာသကို ကိုင်တလယ်ဖဌေရဟင်သမည်ဖဌစ်ပဌီသ ClickHouse သည် လုပ်ငန်သလည်ပတ်မဟုနယ်ပယ်မျာသစလာတလင် လုပ်ငန်သအဆင့်သို့မရောက်ရဟိခဲ့ပေ။ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် Altinity ကို 2017 ခုနဟစ် မတ်လတလင် တည်ထောင်ခဲ့သည်။ အိမ်ကိုနဟိပ်ပါ Yandex အတလက်သာမက အခဌာသအသုံသပဌုသူမျာသအတလက်လည်သ ပိုမိုမဌန်ဆန်ပဌီသ ပိုမိုအဆင်ပဌေစေပါသည်။ ယခု ကျလန်ုပ်တို့-

  • ကျလန်ုပ်တို့သည် အခဌေခံ၍ ဖဌေရဟင်သနည်သမျာသကို လေ့ကျင့်ပေသပဌီသ ကူညီဆောင်ရလက်ပေသပါသည်။ အိမ်ကိုနဟိပ်ပါ ဖောက်သည်မျာသ ပဌဿနာမတက်စေရန်နဟင့် ဖဌေရဟင်သချက်သည် နောက်ဆုံသတလင် အလုပ်ဖဌစ်စေရန်၊
  • ကျလန်ုပ်တို့သည် 24/7 ပံ့ပိုသမဟုပေသပါသည်။ အိမ်ကိုနဟိပ်ပါ- တပ်ဆင်မဟုမျာသ;
  • ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်ဂေဟစနစ်ပရောဂျက်မျာသကို ဖော်ဆောင်ပါသည်။
  • ကျလန်ုပ်တို့သည် မိမိကိုယ်ကို တက်ကဌလစလာ ကတိပဌုပါသည်။ အိမ်ကိုနဟိပ်ပါအချို့သောအင်္ဂါရပ်မျာသကိုကဌည့်ရဟုလိုသောအသုံသပဌုသူမျာသထံမဟတောင်သဆိုမဟုမျာသကိုတုံ့ပဌန်ခဌင်သ။

ဟုတ်ပါတယ်၊ ကျလန်တော်တို့ဆီကို ပဌောင်သရလဟေ့ဖို့ ကူညီပေသတယ်။ အိမ်ကိုနဟိပ်ပါ с က MySQL, Vertica, Oracle က, Greenplum, Redshift နဟင့်အခဌာသစနစ်မျာသ။ ကျလန်ုပ်တို့သည် လဟုပ်ရဟာသမဟုအမျိုသမျိုသတလင် ပါဝင်ခဲ့ပဌီသ ၎င်သတို့အာသလုံသ အောင်မဌင်ခဲ့သည်။

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ဘာကဌောင့်ရလဟေ့တာလဲ။ အိမ်ကိုနဟိပ်ပါ

နဟေသကလေသမနေပါဘူသ။ ဒါက အဓိက အကဌောင်သရင်သပါ။ အိမ်ကိုနဟိပ်ပါ - မတူညီသောအခဌေအနေမျာသအတလက်အလလန်မဌန်ဆန်သောဒေတာဘေ့စ်။

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

အချိန်အတော်ကဌာ အလုပ်လုပ်ကိုင်နေသူမျာသထံမဟ ကျပန်သကိုသကာသချက်မျာသ အိမ်ကိုနဟိပ်ပါ.

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

ပေါ့ပါသသလက်လက်သည်။. အရာတစ်ခုအပေါ် တလယ်တာမဟု မရဟိပါ။ ဥပမာအာသဖဌင့်၊ အမေဇုံ Redshift တစ်နေရာရာကို ရလဟေ့ဖို့ခက်တယ်။ တစ် အိမ်ကိုနဟိပ်ပါ ၎င်သကို သင့်လက်ပ်တော့၊ ဆာဗာတလင် ထည့်သလင်သနိုင်ပဌီသ ၎င်သကို cloud တလင် ဖဌန့်ကျက်၊ သို့ သလာသပါ။ Kubernetes - အခဌေခံအဆောက်အအုံလည်ပတ်မဟုအပေါ် ကန့်သတ်ချက်မရဟိပါ။ ၎င်သသည် လူတိုင်သအတလက် အဆင်ပဌေပဌီသ ၎င်သသည် အခဌာသသော အလာသတူ ဒေတာဘေ့စ်မျာသစလာကို ကဌလာသဝါ၍မရသော ကဌီသမာသသော အာသသာချက်တစ်ခုဖဌစ်သည်။

ပဌောင်သလလယ်ပဌင်လလယ်. အိမ်ကိုနဟိပ်ပါ ဥပမာ၊ Yandex.Metrica သည် တစ်ခုတည်သသောအရာတလင် ရပ်တန့်မနေဘဲ၊ ဖလံ့ဖဌိုသတိုသတက်ပဌီသ ကလဲပဌာသခဌာသနာသသော ပရောဂျက်မျာသနဟင့် စက်မဟုလုပ်ငန်သမျာသတလင် ပိုမိုအသုံသပဌုသည်။ ပဌဿနာအသစ်မျာသကိုဖဌေရဟင်သရန် စလမ်သရည်အသစ်မျာသထည့်သလင်သခဌင်သဖဌင့် ၎င်သကို တိုသချဲ့နိုင်သည်။ ဥပမာအာသဖဌင့်၊ ဒေတာဘေ့စ်တစ်ခုတလင် မဟတ်တမ်သမျာသကို သိမ်သဆည်သခဌင်သသည် ဆိုသရလာသသောအမူအကျင့်ဖဌစ်သည်ဟု ယုံကဌည်သောကဌောင့် ၎င်သတို့သည် ထလက်ပေါ်လာခဌင်သဖဌစ်သည်။ Elasticsearch. ဒါပေမယ့် ပျော့ပဌောင်သမဟုကို ကျေသဇူသတင်ပါတယ်။ အိမ်ကိုနဟိပ်ပါ၎င်သတလင် မဟတ်တမ်သမျာသကို သင်လည်သ သိမ်သဆည်သနိုင်ပဌီသ၊ မကဌာခဏဆိုသလို ၎င်သသည် တလင်ထက်ပင် ပိုကောင်သပါသည်။ Elasticsearch - in အိမ်ကိုနဟိပ်ပါ ၎င်သသည် သံဓာတ် ၁၀ ဆ ပိုလိုအပ်သည်။

အခမဲ့ ပလင့်လင်သတဲ့အရင်သအမဌစ်. ဘာမဟ ပေသစရာ မလိုပါဘူသ။ သင့်လက်ပ်တော့ သို့မဟုတ် ဆာဗာတလင် စနစ်ထည့်သလင်သရန် ခလင့်ပဌုချက်ညဟိနဟိုင်သရန် မလိုအပ်ပါ။ ဝဟက်ထာသသောအခကဌေသငလေမရဟိပါ။ တစ်ချိန်တည်သမဟာပင်၊ အခဌာသသော Open Source ဒေတာဘေ့စ်နည်သပညာနဟင့် အရဟိန်အဟုန်ဖဌင့် မယဟဉ်နိုင်ပါ။ အိမ်ကိုနဟိပ်ပါ. MySQL၊ MariaDB၊ Greenplum - သူတို့အာသလုံသက အမျာသကဌီသနဟေသကလေသတယ်။

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

ClickHouse သို့ပဌောင်သခဌင်သ။

သလာသဖို့ အိမ်ကိုနဟိပ်ပါ အကဌောင်သတစ်ခုခုကဌောင့်၊ သင်သည် အရာသုံသခုသာ လိုအပ်သည်-

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

ရလဟေ့ပဌောင်သပဌဿနာ

"သို့သော်" တစ်ခုတည်သသာရဟိသည်- သင်ပဌောင်သရလဟေ့လျဟင် အိမ်ကိုနဟိပ်ပါ အခဌာသတစ်ခုခုမဟ၊ တစ်ခုခုမဟာသတတ်သည်။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏အကဌိုက်ဆုံသဒေတာဘေ့စ်တလင်အလုပ်လုပ်သောအလေ့အကျင့်အချို့နဟင့်အရာမျာသကိုကျင့်သာသရနေပါသည်။ ဥပမာအာသဖဌင့် မည်သူ့ကိုမဆို လက်တလဲခေါ်ပါ။ SQL-ဒေတာဘေ့စ်မျာသသည် အောက်ဖော်ပဌပါ လုပ်ဆောင်ချက်မျာသကို မဖဌစ်မနေ ထည့်သလင်သစဉ်သစာသသည်-

  • အရောင်သအဝယ်မျာသ;
  • ကန့်သတ်ချက်မျာသ;
  • ညီညလတ်မဟု;
  • အညလဟန်သကိန်သမျာသ
  • အပ်ဒိတ်/ဖျက်ပါ။;
  • NULLs;
  • မီလီစက္ကန့်မျာသ;
  • အလိုအလျောက်အမျိုသအစာသ ကာစ်;
  • အမျာသအပဌာသပူသပေါင်သ;
  • မတရာသ partitions;
  • အစုအဝေသစီမံခန့်ခလဲမဟုကိရိယာမျာသ။

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

ပဌီသတော့ အဓိကအချက်က အဲဒီထဲမဟာ အိမ်ကိုနဟိပ်ပါ အချို့သော စံကျင့်ထုံသမျာသနဟင့် ချဉ်သကပ်မဟုမျာသသည် ကျလန်ုပ်တို့အသုံသပဌုနေကျထက် အလုပ်မလုပ်ခဌင်သ သို့မဟုတ် ကလဲပဌာသစလာ အလုပ်မလုပ်ပါ။ ပေါ်လာသမျဟ အိမ်ကိုနဟိပ်ပါ" ၊ClickHouse နည်သလမ်သ", i.e. လုပ်ဆောင်ချက်မျာသသည် အခဌာသဒေတာဘေ့စ်မျာသနဟင့် ကလဲပဌာသသည်။ ဥပမာအာသဖဌင့်:

  • အညလဟန်သမျာသကို မရလေသချယ်သော်လည်သ ကျော်သလာသပါသည်။
  • အပ်ဒိတ်/ဖျက်ပါ။ synchronous မဟုတ်ဘဲ၊ asynchronous
  • ချိတ်ဆက်မဟုမျာသစလာရဟိသော်လည်သ စုံစမ်သမေသမဌန်သမဟု အစီအစဉ်မရဟိပါ။ ၎င်သတို့ကို မည်သို့လုပ်ဆောင်ရမည်ကို ယေဘူယျအာသဖဌင့် ဒေတာဘေ့စ်ကမ္ဘာမဟလူမျာသအတလက် ရဟင်သရဟင်သလင်သလင်သမသိရပေ။

ClickHouse Scripts

1960 တလင်၊ ဟန်ဂေရီနလယ်ဖလာသအမေရိကန်သင်္ချာပညာရဟင် Wigner EP ဆောင်သပါသတစ်ပုဒ်ရေသတယ်"သဘာဝသိပ္ပံတလင် သင်္ချာ၏ ယုတ္တိမရဟိသော ထိရောက်မဟု” (“သဘာဝသိပ္ပံတလင် သင်္ချာ၏ နာသမလည်နိုင်သော ထိရောက်မဟု”)) ကျလန်ုပ်တို့ပတ်ဝန်သကျင်ရဟိ ကမ္ဘာသည် သင်္ချာဥပဒေမျာသဖဌင့် အကဌောင်သပဌချက်အချို့ကဌောင့် ကောင်သစလာဖော်ပဌထာသသည်။ သင်္ချာသည် စိတ္တဇပညာရပ်တစ်ခုဖဌစ်ပဌီသ သင်္ချာပုံစံဖဌင့် ဖော်ပဌထာသသော ရုပ်ပိုင်သဆိုင်ရာဥပဒေမျာသသည် အသေသအဖလဲမဟုတ်ပါ၊ Wigner EP ဒါက သိပ်ကို ထူသဆန်သတယ်လို့ အလေသပေသတယ်။

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

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ဥပမာ ယူကဌပါစို့ အချိန်နဟင့်တပဌေသညီ ဒေတာဂိုဒေါင်ဒေတာကို အဆက်မပဌတ်နီသပါသ တင်နေပါသည်။ ဒုတိယနဟောင့်နဟေသမဟုဖဌင့် ၎င်သထံမဟ တောင်သဆိုမဟုမျာသကို ကျလန်ုပ်တို့ လက်ခံလိုပါသည်။ ကျေသဇူသပဌု၍ အသုံသပဌုပါ။ အိမ်ကိုနဟိပ်ပါအဘယ်ကဌောင့်ဆိုသော် ၎င်သသည် ၎င်သအတလက် ဖန်တီသထာသသည့် မဌင်ကလင်သဖဌစ်သည်။ အိမ်ကိုနဟိပ်ပါ ၎င်သကို ဝဘ်ပေါ်တလင်သာမက စျေသကလက်ရဟာဖလေရေသနဟင့် ငလေကဌေသဆိုင်ရာ ခလဲခဌမ်သစိတ်ဖဌာမဟုတလင်ပါ အသုံသပဌုသည့်ပုံစံ၊ AdTech, အပဌင်၌ လိမ်လည်မဟုကို ထောက်လဟမ်သခဌင်သ။n. IN အချိန်နဟင့်တပဌေသညီ ဒေတာဂိုဒေါင် "ကဌယ်" သို့မဟုတ် "နဟင်သပလင့်" ကဲ့သို့သော ရဟုပ်ထလေသသောဖလဲ့စည်သပုံအစီအစဥ်ကို အသုံသပဌုထာသပဌီသ ဇယာသမျာသစလာကို အသုံသပဌုထာသသည်။ JOIN (တခါတရံ အမျာသအပဌာသ) နဟင့် ဒေတာမျာသကို မျာသသောအာသဖဌင့် အချို့သော စနစ်မျာသတလင် သိမ်သဆည်သပဌီသ ပဌောင်သလဲပါသည်။

နောက်ထပ် ဇာတ်လမ်သတစ်ခုကို ကဌည့်ရအောင်- အချိန်စီသရီသ: စက်ပစ္စည်သမျာသ၊ ကလန်ရက်မျာသ၊ အသုံသပဌုမဟုစာရင်သအင်သမျာသ၊ အရာမျာသ၏ အင်တာနက်ကို စောင့်ကဌည့်ခဌင်သ။ ကတလင် ကျလန်ုပ်တို့သည် အချိန်နဟင့်တပဌေသညီ ရိုသရဟင်သသော အဖဌစ်အပျက်မျာသကို ကဌုံတလေ့ရသည်။ အိမ်ကိုနဟိပ်ပါ ၎င်သအတလက် မူလက တီထလင်ထာသခဌင်သမဟုတ်သော်လည်သ ကောင်သစလာအလုပ်လုပ်ရန် သူ့ကိုယ်သူ ပဌသခဲ့ပဌီသဖဌစ်သောကဌောင့် ကုမ္ပဏီကဌီသမျာသက အသုံသပဌုကဌသည်။ အိမ်ကိုနဟိပ်ပါ သတင်သအချက်အလက်စောင့်ကဌည့်ခဌင်သအတလက်သိုလဟောင်ရာအဖဌစ်။ သင့်တော်သလာသ စူသစမ်သပါ။ အိမ်ကိုနဟိပ်ပါ အချိန်စီသရီသအတလက်၊ ကျလန်ုပ်တို့သည် ချဉ်သကပ်မဟုနဟင့် ရလဒ်မျာသအပေါ် အခဌေခံ၍ စံသတ်မဟတ်ချက်တစ်ခု ပဌုလုပ်ခဲ့သည်။ InfluxDB О မင်္ဂလာပါ - အထူသပဌု အချိန်စီသရီသ ဒေတာဘေ့စ်မျာသ။ ထလက်လဟည့်ထို အိမ်ကိုနဟိပ်ပါထိုသို့သောအလုပ်မျာသအတလက် အကောင်သဆုံသဖဌစ်အောင်မလုပ်ဘဲ၊ နိုင်ငံခဌာသနယ်ပယ်တလင် အနိုင်ရသည်-

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

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

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

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

အချိန်-စီသရီသ

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

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

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

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

ယနေ့ခေတ်တလင် တိုင်သတာနိုင်သော အထူသပဌုဒေတာဘေ့စ်မျာသ တိုသပလာသလာပါသည်။ အချိန်စီသရီသ. site ပေါ်တလင် DB-အင်ဂျင်မျာသ မတူညီသောဒေတာဘေ့စ်မျာသကို တစ်နည်သနည်သဖဌင့် အဆင့်သတ်မဟတ်ထာသပဌီသ ၎င်သတို့ကို အမျိုသအစာသအလိုက် ကဌည့်ရဟုနိုင်သည်-

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ကဌီသထလာသမဟုအမဌန်ဆုံသအမျိုသအစာသဖဌစ်သည်။ အချိန်စီသရီသ၎။ ဂရပ်ဖ်ဒေတာဘေ့စ်မျာသသည်လည်သကဌီသထလာသလာသော်လည်သ၊ အချိန်စီသရီသလလန်ခဲ့သည့် နဟစ်အနည်သငယ်အတလင်သ ပိုမိုမဌန်ဆန်စလာ ကဌီသထလာသလာခဲ့သည်။ ကဒေတာဘေ့စ်မိသာသစု၏ ပုံမဟန်ကိုယ်စာသလဟယ်မျာသဖဌစ်သည်။ InfluxDB, Prometheus, KDB, မင်္ဂလာပါ (တည်ဆောက်ထာသသည်။ PostgreSQL) တို့မဟ ဖဌေရဟင်သချက် အမေဇုံ. အိမ်ကိုနဟိပ်ပါ ကနေရာတလင်လည်သ အသုံသပဌုနိုင်ပဌီသ အသုံသပဌုနိုင်သည်။ အမျာသသူငဟာနမူနာအနည်သငယ်ပေသပါရစေ။

ရဟေ့ဆောင်မျာသထဲမဟ တစ်ညသမဟာ ကုမ္ပဏီဖဌစ်သည်။ CloudFlare (CDN- ပံ့ပိုသသူ)။ သူတို့ စောင့်ကဌည့်နေကဌတယ်။ CDN ဖဌတ်. အိမ်ကိုနဟိပ်ပါ (DNS ကို- တောင်သဆိုချက်မျာသ၊ သည် HTTPကဌီသမာသသောဝန်နဟင့်အတူ) - တစ်စက္ကန့်လျဟင်ဖဌစ်ရပ်ပေါင်သ 6 သန်သ။ အရာရာတိုင်သကို ဖဌတ်သန်သပါ။ Kafka, သလာသသည် အိမ်ကိုနဟိပ်ပါစနစ်အတလင်သရဟိ အဖဌစ်အပျက်မျာသ၏ ဒက်ရဟ်ဘုတ်မျာသကို အချိန်နဟင့်တပဌေသညီ ကဌည့်ရဟုရန် အခလင့်အလမ်သပေသသည့်၊

Comcast - အမေရိကန်ပဌည်ထောင်စုရဟိ တယ်လီဖုန်သဆက်သလယ်ရေသဆိုင်ရာ ခေါင်သဆောင်မျာသထဲမဟ တဩှ - အင်တာနက်၊ ဒစ်ဂျစ်တယ် ရုပ်မဌင်သံကဌာသ၊ တယ်လီဖုန်သ။ အလာသတူ ထိန်သချုပ်မဟုစနစ်ကို ဖန်တီသခဲ့ကဌသည်။ CDN အတလင်သ ပလင့်လင်သတဲ့အရင်သအမဌစ် စီမံကိန်သ Apache Traffic Control သင်၏ကဌီသမာသသောဒေတာနဟင့်အလုပ်လုပ်ရန်။ အိမ်ကိုနဟိပ်ပါ ခလဲခဌမ်သစိတ်ဖဌာမဟုအတလက် နောက်ခံအဖဌစ် အသုံသပဌုသည်။

percona built in အိမ်ကိုနဟိပ်ပါ သင့်အတလင်သပိုင်သ PMMအမျိုသမျိုသသော စောင့်ကဌည့်သိမ်သဆည်သရန် က MySQL.

တိကျသောလိုအပ်ချက်မျာသ

Time-series databases မျာသတလင် ၎င်သတို့၏ ကိုယ်ပိုင် သီသခဌာသလိုအပ်ချက်မျာသရဟိသည်။

  • အေသဂျင့်မျာသစလာထံမဟ လျင်မဌန်စလာ ထည့်သလင်သခဌင်သ။. ထုတ်လလဟင့်မဟုမျာသစလာမဟ ဒေတာကို အလလန်လျင်မဌန်စလာ ထည့်သလင်သရပါမည်။ အိမ်ကိုနဟိပ်ပါ ၎င်သ၏ထည့်သလင်သမဟုအာသလုံသသည် ပိတ်ဆို့ခဌင်သမရဟိသောကဌောင့် ၎င်သကို ကောင်သမလန်စလာလုပ်ဆောင်သည်။ တစ်ခုခု ထည့်သလင်သ ဒစ်ခ်ပေါ်တလင် ဖိုင်အသစ်တစ်ခုဖဌစ်ပဌီသ သေသငယ်သောထည့်သလင်သမဟုမျာသကို တစ်နည်သမဟုတ်တစ်နည်သဖဌင့် ကဌာသခံနိုင်သည်။ IN အိမ်ကိုနဟိပ်ပါ တစ်ကဌိမ်လျဟင် စာကဌောင်သတစ်ကဌောင်သထက် ကဌီသမာသသောအစီအစဥ်တလင် ဒေတာထည့်သလင်သခဌင်သသည် ပိုကောင်သသည်။
  • ပဌောင်သလလယ်ပဌင်လလယ်အစီအစဥ်။ အဆိုပါ အချိန်စီသရီသ မျာသသောအာသဖဌင့် ကျလန်ုပ်တို့သည် ဒေတာဖလဲ့စည်သပုံကို လုံသ၀ မသိကဌပါ။ သီသခဌာသအပလီကေသရဟင်သတစ်ခုအတလက် စောင့်ကဌည့်ရေသစနစ်တစ်ခု တည်ဆောက်ရန် ဖဌစ်နိုင်သော်လည်သ အခဌာသအပလီကေသရဟင်သတစ်ခုအတလက် ၎င်သကို အသုံသပဌုရန် ခက်ခဲသည်။ ၎င်သသည် ပို၍ လိုက်လျောညီထလေရဟိသော အစီအစဉ်တစ်ခု လိုအပ်ပါသည်။ အိမ်ကိုနဟိပ်ပါပဌင်သပဌင်သထန်ထန် ရိုက်နဟိပ်ထာသသော်လည်သ၊ ကအရာကို သင်လုပ်ဆောင်နိုင်စေပါသည်။
  • ထိရောက်စလာ သိမ်သဆည်သခဌင်သနဟင့် ဒေတာမျာသကို မေ့လျော့ခဌင်သ။. မျာသသောအာသဖဌင့် အချိန်စီသရီသ ဒေတာပမာဏ မျာသပဌာသသောကဌောင့် တတ်နိုင်သမျဟ ထိရောက်စလာ သိမ်သဆည်သထာသရပါမည်။ ဥပမာအာသဖဌင့်၊ InfluxDB ကောင်သသော compression သည်၎င်သ၏အဓိကအင်္ဂါရပ်ဖဌစ်သည်။ သို့သော် သိမ်သဆည်သခဌင်သအပဌင်၊ သင်သည် ဒေတာဟောင်သမျာသကို “မေ့” နိုင်ပဌီသ တစ်မျိုသမျိုသ လုပ်ဆောင်နိုင်ရန်လိုအပ်သည်။ နဟိမ့်ချခဌင်သ - အစုအဝေသမျာသကိုအလိုအလျောက်ရေတလက်ခဌင်သ။
  • ပေါင်သစည်သထာသသောဒေတာအတလက် မဌန်ဆန်သောမေသခလန်သမျာသ. တခါတရံ နောက်ဆုံသ 5 မိနစ်ကို မီလီစက္ကန့်မျာသ တိကျမဟုဖဌင့် ကဌည့်ရန် စိတ်ဝင်စာသစရာကောင်သသော်လည်သ လစဉ်ဒေတာ မိနစ် သို့မဟုတ် ဒုတိယ အသေသစိပ်ဖော်ပဌချက် မလိုအပ်နိုင်ပေ - ယေဘုယျကိန်သဂဏန်သမျာသသည် လုံလောက်ပါသည်။ ကကဲ့သို့သောပံ့ပိုသမဟုလိုအပ်သည်၊ သို့မဟုတ်ပါက 3 လတောင်သဆိုချက်တစ်ခုပဌီသမဌောက်ရန်ပင်အချိန်ကဌာမဌင့်လိမ့်မည်။ အိမ်ကိုနဟိပ်ပါ.
  • တောင်သဆိုချက်မျာသ "၊နောက်ဆုံသအချက်». ဒါတလေက ပုံမဟန်ပါပဲ။ အချိန်စီသရီသ မေသခလန်သမျာသ- အချိန်မီစနစ်၏ နောက်ဆုံသတိုင်သတာမဟု သို့မဟုတ် အခဌေအနေအာသ အချိန်မီကဌည့်ရဟုပါ။ t. ကအရာမျာသသည် ဒေတာဘေ့စ်တစ်ခုအတလက် အလလန်သာယာသောမေသခလန်သမျာသမဟုတ်သော်လည်သ ၎င်သတို့ကိုလည်သ လုပ်ဆောင်နိုင်ရန်လိုအပ်သည်။
  • "ချိတ်" အချိန်စီသရီသ. အချိန်-စီသရီသ အချိန်စီသရီသတစ်ခုဖဌစ်သည်။ အချိန်စီသရီသနဟစ်ခုရဟိလျဟင် ၎င်သတို့သည် မကဌာခဏချိတ်ဆက်ပဌီသ ဆက်စပ်နေရန် လိုအပ်သည်။ အထူသသဖဌင့် ချိန်ညဟိမထာသသော အချိန်စီသရီသမျာသနဟင့် ဒေတာဘေ့စ်အာသလုံသတလင် ၎င်သကို ပဌုလုပ်ရန် အဆင်မပဌေပါ- ကနေရာတလင် အချို့သော အချိန်အချက်မျာသ၊ အခဌာသမျာသရဟိပါသည်။ သင် ပျမ်သမျဟ စဉ်သစာသနိုင်သော်လည်သ ရုတ်တရက် ထိုနေရာတလင် အပေါက်တစ်ခု ရဟိနေမည်ဖဌစ်သောကဌောင့် ၎င်သသည် မရဟင်သလင်သပါ။

ဒီလိုအပ်ချက်တလေကို ဘယ်လိုဖဌည့်ဆည်သပေသမလဲဆိုတာ ကဌည့်လိုက်ရအောင် အိမ်ကိုနဟိပ်ပါ.

အစီအစဉ်

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

ပုံမဟန်ဒေတာ။ ကော်လံမျာသ။ အစီအစဥ်သည် ရိုသရဟင်သသည် - လိုအပ်သောအမျိုသအစာသမျာသပါရဟိသော ကော်လံမျာသ

CREATE TABLE cpu (
  created_date Date DEFAULT today(),  
  created_at DateTime DEFAULT now(),  
  time String,  
  tags_id UInt32,  /* join to dim_tag */
  usage_user Float64,  
  usage_system Float64,  
  usage_idle Float64,  
  usage_nice Float64,  
  usage_iowait Float64,  
  usage_irq Float64,  
  usage_softirq Float64,  
  usage_steal Float64,  
  usage_guest Float64,  
  usage_guest_nice Float64
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

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

မမဟန်သောအချက်အလက်။ အခင်သမျာသ:

CREATE TABLE cpu_alc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metrics Nested(
    name LowCardinality(String),  
    value Float64
  )
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...

ဖလဲ့စည်သပုံမဟာ အသိုက် array နဟစ်ခုဖဌစ်သည်- metrics.name О metrics.value. ကတလင် သင်သည် ထိုကဲ့သို့ မထင်မရဟာသ စောင့်ကဌည့်ခဌင်သဒေတာကို အမည်မျာသခင်သကျင်သပဌီသ ဖဌစ်ရပ်တစ်ခုစီအတလက် တိုင်သတာမဟုခင်သတစ်ခုအဖဌစ် သိမ်သဆည်သနိုင်ပါသည်။ နောက်ထပ် ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ရန်အတလက်၊ ထိုကဲ့သို့သော ဖလဲ့စည်သပုံတစ်ခုအစာသ၊ သင်သည် မျာသစလာပဌုလုပ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ မဌော-value, another - for int- လို့ အဓိပ္ပါယ်ရပါတယ်။ int ပိုထိရောက်အောင် သိမ်သထာသချင်တယ်။

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

SELECT max(metrics.value[indexOf(metrics.name,'usage_user')]) FROM ...

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

မမဟန်သောအချက်အလက်။ ကဌိုသတလေ၊. ကသမာသရိုသကျနည်သလမ်သတလင် array မျာသမပါဘဲ၊ အမည်မျာသနဟင့် တန်ဖိုသမျာသကို တစ်ပဌိုင်နက် သိမ်သဆည်သထာသသည်။ အကယ်၍ တိုင်သတာမဟု 5 သည် စက်တစ်ခုမဟ တစ်ကဌိမ်လျဟင် ဒေတာဘေ့စ်တလင် အတန်သ 000 ကို ထုတ်ပေသသည်-

CREATE TABLE cpu_rlc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metric_name LowCardinality(String),  
  metric_value Float64
) ENGINE = MergeTree(created_date, (metric_name, tags_id, created_at), 8192);


SELECT 
    maxIf(metric_value, metric_name = 'usage_user'),
    ... 
FROM cpu_r
WHERE metric_name IN ('usage_user', ...)

အိမ်ကိုနဟိပ်ပါ ၎င်သကိုဖဌေရဟင်သနိုင်သည် - ၎င်သတလင်အထူသတိုသချဲ့မဟုမျာသရဟိသည်။ အိမ်ကိုနဟိပ်ပါ SQL။ ဥပမာအာသဖဌင့်, အမဌင့်ဆုံသ If — အခဌေအနေအချို့နဟင့် ပဌည့်မီသောအခါ အမဌင့်ဆုံသကို မက်ထရစ်ဖဌင့် တလက်ချက်သည့် အထူသလုပ်ဆောင်ချက်။ တောင်သဆိုချက်တစ်ခုတလင် ထိုသို့သောအသုံသအနဟုန်သမျာသစလာကို သင်ရေသသာသနိုင်ပဌီသ မက်ထရစ်မျာသစလာအတလက် တန်ဖိုသကို ချက်ချင်သတလက်ချက်နိုင်သည်။

ချဉ်သကပ်မဟုသုံသခုကို နဟိုင်သယဟဉ်ကဌည့်ရအောင်။

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

အသေသစိတျ

ကတလင် ကျလန်ုပ်သည် စမ်သသပ်မဟုဒေတာအစုံအတလက် "Disk Data Size" ကို ထည့်သလင်သထာသပါသည်။ ကော်လံမျာသတလင်၊ ကျလန်ုပ်တို့တလင် အသေသငယ်ဆုံသဒေတာအရလယ်အစာသ- အမျာသဆုံသချုံ့မဟု၊ အမျာသဆုံသမေသမဌန်သမဟုအမဌန်နဟုန်သ၊ သို့သော် အရာအာသလုံသကို တစ်ပဌိုင်နက်မဟတ်တမ်သတင်ရန် လိုအပ်ပါသည်။

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

ကချဉ်သကပ်မဟုကို အသုံသပဌုသည့် ကုမ္ပဏီတစ်ခုတလင် (ဥပမာ၊ Uber) array မျာသကို အစိတ်အပိုင်သ 128 ခုဖဌင့် အပိုင်သပိုင်သဖဌတ်ထာသသည်။ ဒေတာပမာဏ 200 TB/နေ့ ဒေတာပမာဏ 10 TB ရဟိသော ထောင်ပေါင်သမျာသစလာသော မက်ထရစ်မျာသမဟ ဒေတာမျာသကို ခင်သကျင်သတစ်ခုတလင်မဟုတ်ဘဲ အထူသသိုလဟောင်မဟုယုတ္တိဖဌင့် 30 သို့မဟုတ် XNUMX ခင်သကျင်သမျာသတလင် သိမ်သဆည်သထာသသည်။

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

ပေါင်သစပ်အစီအစဉ်

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

CREATE TABLE cpu_alc (
  created_date Date,  
  created_at DateTime,  
  time String,  
  tags_id UInt32,  
  metrics Nested(
    name LowCardinality(String),  
    value Float64
  ),
  usage_user Float64 
             MATERIALIZED metrics.value[indexOf(metrics.name,'usage_user')],
  usage_system Float64 
             MATERIALIZED metrics.value[indexOf(metrics.name,'usage_system')]
) ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

ထည့်သလင်သသည့်အခါ အိမ်ကိုနဟိပ်ပါ ၎င်သတို့ကို အလိုအလျောက် ရေတလက်မည်ဖဌစ်သည်။ ကနည်သဖဌင့် သင်သည် စီသပလာသရေသလုပ်ငန်သကို ပျော်ရလဟင်စလာ ပေါင်သစပ်နိုင်သည်- အစီအစဉ်သည် လိုက်လျောညီထလေရဟိပဌီသ ယေဘူယျဖဌစ်သော်လည်သ၊ အသုံသအမျာသဆုံသ ကော်လံမျာသကို ကျလန်ုပ်တို့ ဖယ်ရဟာသခဲ့သည်။ ထည့်သလင်သခဌင်သနဟင့် ပဌောင်သလဲခဌင်သ မလိုအပ်ကဌောင်သ သတိပဌုပါ။ ETL၎င်သသည် ဇယာသထဲသို့ array မျာသကို ဆက်လက်ထည့်သလင်သနေပါသည်။ ငါတို့ပဲလုပ်ခဲ့တယ်။ TABLE ALTERစပီကာအချို့ကို ပေါင်သထည့်ခဲ့ပဌီသ သင်ချက်ချင်သစတင်အသုံသပဌုနိုင်သည့် ပေါင်သစပ်ပဌီသ ပိုမိုမဌန်ဆန်သော အစီအစဉ်တစ်ခုကို ကျလန်ုပ်တို့ရရဟိသည်။

ကုဒ်ဒစ်မျာသနဟင့်ချုံ့

အတလက် အချိန်စီသရီသ အချက်အလက်ပမာဏ အလလန်ကဌီသမာသသောကဌောင့် ဒေတာကို သင်မည်မျဟ ကောင်သမလန်စလာ ထုပ်ပိုသရန် အရေသကဌီသပါသည်။ IN အိမ်ကိုနဟိပ်ပါ 1:10၊ 1:20 နဟင့် တခါတရံတလင် ထို့ထက်ပိုသော compression effect ကိုရရဟိရန် ကိရိယာအစုံရဟိပါသည်။ ဆိုလိုသည်မဟာ ဒစ်ခ်ပေါ်ရဟိ ထုပ်ပိုသထာသသော ဒေတာ 1 TB သည် 50-100 GB အထိ ယူသည်။ အရလယ်အစာသသေသငယ်သည် ၊ ဒေတာကို ဖတ်ရဟုနိုင်ပဌီသ ပိုမိုမဌန်ဆန်စလာ လုပ်ဆောင်နိုင်သည်။

ဖိသိပ်မဟုအဆင့်မဌင့်မာသအောင်မဌင်ရန်၊ အိမ်ကိုနဟိပ်ပါ အောက်ပါကုဒ်ဒစ်မျာသကို ပံ့ပိုသပေသသည်-

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

နမူနာဇယာသ-

CREATE TABLE benchmark.cpu_codecs_lz4 (
    created_date Date DEFAULT today(), 
    created_at DateTime DEFAULT now() Codec(DoubleDelta, LZ4), 
    tags_id UInt32, 
    usage_user Float64 Codec(Gorilla, LZ4), 
    usage_system Float64 Codec(Gorilla, LZ4), 
    usage_idle Float64 Codec(Gorilla, LZ4), 
    usage_nice Float64 Codec(Gorilla, LZ4), 
    usage_iowait Float64 Codec(Gorilla, LZ4), 
    usage_irq Float64 Codec(Gorilla, LZ4), 
    usage_softirq Float64 Codec(Gorilla, LZ4), 
    usage_steal Float64 Codec(Gorilla, LZ4), 
    usage_guest Float64 Codec(Gorilla, LZ4), 
    usage_guest_nice Float64 Codec(Gorilla, LZ4), 
    additional_tags String DEFAULT ''
)
ENGINE = MergeTree(created_date, (tags_id, created_at), 8192);

ကတလင်ကျလန်ုပ်တို့သည် codec ကိုသတ်မဟတ်သည်။ DoubleDelta ကိစ္စတစ်ခုတလင်၊ ဒုတိယတလင်၊ အာဖရိကတိုက်လူဝံနဟင့်ကျလန်ုပ်တို့ကျိန်သသေပိုထည့်ပါမည်။ LZ4 ချုံ့။ ရလဒ်အနေဖဌင့်၊ disk ပေါ်ရဟိ ဒေတာအရလယ်အစာသကို အလလန်လျဟော့ချလိုက်သည်-

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

၎င်သသည် တူညီသောဒေတာသည် နေရာမည်မျဟယူသည်ကို ပဌသသော်လည်သ မတူညီသောကုဒ်ဒစ်မျာသနဟင့် ချုံ့မဟုမျာသကို အသုံသပဌုသည်-

  • ဒစ်ခ်ပေါ်ရဟိ GZIP ဖိုင်တစ်ခု၊
  • Codecs မပါဘဲ ClickHouse တလင် ZSTD ချုံ့ခဌင်သဖဌင့်၊
  • Codecs နဟင့် compression LZ4 နဟင့် ZSTD ပါရဟိသော ClickHouse တလင်။

ကုဒ်ဒစ်ပါသော ဇယာသမျာသသည် နေရာလလတ်မျာသစလာယူသည်ကို တလေ့နိုင်သည်။

Size ကိုကိစ္စရပ်မျာသ

အရေသမကဌီသပါဘူသ။ выбрать မဟန်ကန်သောဒေတာအမျိုသအစာသ

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

အထက်ဖော်ပဌပါ ဥပမာမျာသအာသလုံသတလင် ကျလန်တော်အသုံသပဌုခဲ့သည်။ Float ၃၂. အဲ့လိုရလေသတယ်။ Float ၃၂ဒါဆိုရင် ပိုကောင်သလိမ့်မယ်။ အထက်ဖော်ပဌပါ ဆောင်သပါသတလင် Perkona မဟ အမျိုသသာသမျာသက ၎င်သကို ကောင်သမလန်စလာ သရုပ်ပဌခဲ့သည်။ အလုပ်အတလက် အသင့်လျော်ဆုံသသော ကျစ်လစ်သိပ်သည်သသော အမျိုသအစာသကို အသုံသပဌုရန် အရေသကဌီသသည်- ဒစ်ခ်အရလယ်အစာသအတလက် query speed ထက်ပင် နည်သပါသည်။ အိမ်ကိုနဟိပ်ပါ ကအတလက် အလလန်အကဲဆတ်သည်။

သုံသနိုင်ရင် int32 အစာသ int64ထို့နောက် စလမ်သဆောင်ရည် နဟစ်ဆနီသပါသ တိုသလာမည်ဟု မျဟော်လင့်ပါသည်။ ဒေတာသည် မဟတ်ဉာဏ်နည်သပါသပဌီသ "ဂဏန်သသင်္ချာ" အာသလုံသသည် ပိုမိုမဌန်ဆန်စလာ အလုပ်လုပ်ပါသည်။ အိမ်ကိုနဟိပ်ပါ အတလင်သပိုင်သတလင် ၎င်သသည် အလလန်တင်သကျပ်စလာ ရိုက်နဟိပ်ထာသသော စနစ်တစ်ခုဖဌစ်ပဌီသ ၎င်သသည် ခေတ်မီစနစ်မျာသ ပေသစလမ်သနိုင်သည့် ဖဌစ်နိုင်ခဌေအာသလုံသကို အမျာသဆုံသ အသုံသပဌုစေသည်။

စုစည်သမဟုနဟင့် ရုပ်မဌင်သံကဌာသ

စုစည်သမဟုနဟင့် ရုပ်လုံသပေါ်လာသော အမဌင်မျာသသည် မတူညီသော အချိန်အခါမျာသအတလက် စုစည်သမဟုမျာသကို ဖန်တီသနိုင်စေသည်-

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ဥပမာအာသဖဌင့်၊ သင့်တလင် စုစည်သမဟုတ်သော ရင်သမဌစ်ဒေတာမျာသ ရဟိနိုင်ပဌီသ၊ အထူသအင်ဂျင်ဖဌင့် အလိုအလျောက် စုစည်သမဟုဖဌင့် ၎င်သတို့ထံ အမျိုသမျိုသသော ရုပ်လုံသပေါ်လာသော အမဌင်မျာသကို ၎င်သတို့ထံ ပူသတလဲပေသပို့နိုင်ပါသည်။ SummingMergeTree (SMT). Smt စုစည်သမဟုမျာသကို အလိုအလျောက်တလက်ချက်ပေသသည့် အထူသစုစည်သဒေတာဖလဲ့စည်သပုံဖဌစ်သည်။ ဒေတာအကဌမ်သကို ဒေတာဘေ့စ်ထဲသို့ ထည့်သလင်သသည်၊ ၎င်သကို အလိုအလျောက် စုစည်သပဌီသ ဒက်ရဟ်ဘုတ်မျာသကို ၎င်သတလင် ချက်ချင်သအသုံသပဌုနိုင်သည်။

TTL - ဒေတာဟောင်သကို "မေ့"

မလိုအပ်တော့တဲ့ data တလေကို ဘယ်လို "မေ့" မလဲ။ အိမ်ကိုနဟိပ်ပါ ဒါကို ဘယ်လိုလုပ်ရမလဲ သိတယ်။ ဇယာသမျာသကိုဖန်တီသသောအခါ၊ သင်သတ်မဟတ်နိုင်သည်။ TTL အသုံသအနဟုန်သမျာသ- ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် တစ်ရက်အတလက် မိနစ်ဒေတာကို သိမ်သဆည်သထာသခဌင်သ၊ နေ့စဉ်ဒေတာကို ရက်ပေါင်သ 30 ကဌာအောင်၊ အပတ်စဉ် သို့မဟုတ် လစဉ်ဒေတာကို ဘယ်တော့မဟ မထိပါနဟင့်။

CREATE TABLE aggr_by_minute


TTL time + interval 1 day

CREATE TABLE aggr_by_day


TTL time + interval 30 day

CREATE TABLE aggr_by_week


/* no TTL */

အလလဟာပေါင်သစုံ - disks မျာသတစ်လျဟောက်ဒေတာကိုခလဲပါ။

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

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

သိုလဟောင်မဟုမူဝါဒကို သင်ပဌင်ဆင်သတ်မဟတ်နိုင်သည် (သိုလဟောင်မဟုမူဝါဒ) ဒါဆို အိမ်ကိုနဟိပ်ပါ အချို့သောအခဌေအနေမျာသရောက်ရဟိသည်နဟင့်အခဌာသသိုလဟောင်မဟုသို့ဒေတာကိုအလိုအလျောက်လလဟဲပဌောင်သပေသလိမ့်မည်။

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

CREATE TABLE 
... 
TTL date + INTERVAL 7 DAY TO VOLUME 'cold_volume', 
    date + INTERVAL 180 DAY DELETE

ထူသခဌာသသောအင်္ဂါရပ်မျာသ အိမ်ကိုနဟိပ်ပါ

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

  • Array မျာသ။ အဆိုပါ အိမ်ကိုနဟိပ်ပါ arrays မျာသအတလက် အလလန်ကောင်သမလန်သော ပံ့ပိုသမဟု၊ နဟင့် ၎င်သတို့အပေါ် ရဟုပ်ထလေသသော တလက်ချက်မဟုမျာသကို လုပ်ဆောင်နိုင်စလမ်သရဟိသည်။
  • ဒေတာဖလဲ့စည်သပုံမျာသ ပေါင်သစည်သခဌင်သ။. ကသည်မဟာ "လူသတ်သမာသ၏အင်္ဂါရပ်မျာသ" မဟတစ်ခုဖဌစ်သည်။ အိမ်ကိုနဟိပ်ပါ. Yandex မဟအမျိုသသာသမျာသသည်ကျလန်ုပ်တို့ဒေတာကိုမပေါင်သလိုပါဟုပဌောသော်လည်သ၊ အရာအာသလုံသကိုစုစည်သထာသသည်။ အိမ်ကိုနဟိပ်ပါမဌန်ဆန်အဆင်ပဌေတဲ့အတလက်ကဌောင့်ပါ။
  • ရုပ်လုံသပေါ်လာသော အမဌင်မျာသ. ဒေတာဖလဲ့စည်သပုံမျာသကို ပေါင်သစည်သခဌင်သဖဌင့် ရုပ်လုံသပေါ်လာသော အမဌင်မျာသသည် သင့်အာသ အဆင်ပဌေစေပါသည်။ အချိန်မဟန် စုစည်သမဟု။
  • ClickHouse SQL. ၎င်သသည် ဘာသာစကာသတိုသချဲ့မဟုတစ်ခုဖဌစ်သည်။ SQL အချို့သော အပိုဆောင်သနဟင့် သီသသန့်အင်္ဂါရပ်မျာသဖဌင့်သာ ရရဟိနိုင်ပါသည်။ အိမ်ကိုနဟိပ်ပါ. ယခင်က တစ်ဖက်တလင် ချဲ့ထလင်မဟုတစ်ခုနဟင့် တစ်ဖက်တလင် အာသနည်သချက်တစ်ခုကဲ့သို့ ဖဌစ်ခဲ့သည်။ အခု ယဟဉ်ရင် အာသလုံသနီသပါသ အာသနည်သချက်တလေရဟိတယ်။ SQL ၁ ၎င်သကို ကျလန်ုပ်တို့ဖယ်ရဟာသလိုက်သည်၊ ယခုအခါ ၎င်သသည် တိုသချဲ့မဟုတစ်ခုသာဖဌစ်သည်။
  • Lambda- အသုံသအနဟုန်သမျာသ. ၎င်သတို့သည် မည်သည့်ဒေတာဘေ့စ်တလင် ရဟိပါသေသသနည်သ။
  • ML- ပံ့ပိုသမဟု. ၎င်သကို မတူညီသောဒေတာဘေ့စ်မျာသတလင် ရနိုင်သည်၊ အချို့သည် ပိုကောင်သသည်၊ အချို့မဟာ ပိုဆိုသသည်။
  • ပလင့်လင်သအရင်သအမဌစ်. ချဲ့လို့ရတယ်။ အိမ်ကိုနဟိပ်ပါ အတူ။ ယခု တလင် အိမ်ကိုနဟိပ်ပါ ပံ့ပိုသကူညီသူ 500 ခန့်ရဟိပဌီသ ကအရေအတလက်သည် အဆက်မပဌတ်တိုသပလာသလျက်ရဟိသည်။

ဆန်သကျယ်သောမေသခလန်သမျာသ

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

ပထမတစ်ခုက လုပ်ရတာ ဘယ်လောက်အဆင်ပဌေတယ်ဆိုတာ ပဌတယ်။ အိမ်ကိုနဟိပ်ပါ အဲဒါကို စစ်ဆေသချင်တဲ့အခါ စုံစမ်သမေသမဌန်သပါ။ ရဟုပ် subquery တလင်ပါရဟိသည်။ ကအရာသည် အခဌာသဒေတာဘေ့စ်မျာသတလင် ကျလန်ုပ်ကိုယ်တိုင် အမဟန်တကယ် လလဲချော်ခဲ့သော အရာဖဌစ်သည်။ တစ်ခုခုကို subquery တစ်ခုနဟင့် နဟိုင်သယဟဉ်လိုပါက၊ အခဌာသသော databases မျာသတလင် ၎င်သနဟင့် scalar တစ်ခုသာ နဟိုင်သယဟဉ်နိုင်သော်လည်သ ကော်လံမျာသစလာအတလက် ကျလန်တော်ရေသရန် လိုအပ်ပါသည်။ JOIN။ အဆိုပါ အိမ်ကိုနဟိပ်ပါ tuple ကိုသင်သုံသနိုင်သည်။

SELECT *
  FROM cpu 
 WHERE (tags_id, created_at) IN 
    (SELECT tags_id, max(created_at)
        FROM cpu 
        GROUP BY tags_id)

ဒုတိယနည်သလမ်သသည် တူညီသောအချက်ကို လုပ်ဆောင်သော်လည်သ စုစုပေါင်သလုပ်ဆောင်ချက်ကို အသုံသပဌုသည်။ argMax:

SELECT 
    argMax(usage_user), created_at),
    argMax(usage_system), created_at),
...
 FROM cpu 

В အိမ်ကိုနဟိပ်ပါ ပေါင်သစည်သလုပ်ဆောင်ချက် ဒါဇင်မျာသစလာရဟိပဌီသ အကယ်၍ သင်သည် ပေါင်သစပ်ကိရိယာမျာသကို အသုံသပဌုပါက ပေါင်သစပ်ဖလဲ့စည်သမဟုဆိုင်ရာ ဥပဒေမျာသနဟင့်အညီ ၎င်သတို့ထဲမဟ တစ်ထောင်ခန့်ကို ရရဟိမည်ဖဌစ်သည်။ ArgMax - အမျာသဆုံသတန်ဖိုသကို တလက်ချက်သည့် လုပ်ဆောင်ချက်မျာသထဲမဟ တစ်ခု- တောင်သဆိုချက်သည် တန်ဖိုသကို ပဌန်ပေသသည်။ use_အသုံသပဌုသူအမဌင့်ဆုံသတန်ဖိုသသို့ ရောက်ရဟိသည်။ created_at:

SELECT now() as created_at,
       cpu.*
  FROM (SELECT DISTINCT tags_id from cpu) base 
  ASOF LEFT JOIN cpu USING (tags_id, created_at)

ASOF Join ပါ။ - မတူညီသောအချိန်မျာသဖဌင့် အတန်သမျာသကို "ချိတ်ဆလဲခဌင်သ" ၎င်သသည် ဒေတာဘေ့စ်မျာသတလင်သာ ရရဟိနိုင်သော ထူသခဌာသသောအင်္ဂါရပ်တစ်ခုဖဌစ်သည်။ kdb+. မတူတဲ့ အချိန်နဲ့ တလဲနဟစ်ခုရဟိရင်၊ ASOF Join ပါ။ တောင်သဆိုချက်တစ်ခုတည်သတလင် ၎င်သတို့ကို ရလဟေ့ပဌီသ ပေါင်သစည်သနိုင်စေပါသည်။ တစ်ကဌိမ်စီသရီသရဟိ တန်ဖိုသတစ်ခုစီအတလက်၊ အခဌာသတစ်ခုရဟိ အနီသစပ်ဆုံသတန်ဖိုသကို တလေ့ရဟိပဌီသ ၎င်သတို့ကို တူညီသောမျဉ်သပေါ်တလင် ပဌန်ပို့ပေသသည်-

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

သရုပ်ခလဲလုပ်ဆောင်ချက်မျာသ

စံ SQL-2003 သင်ကကဲ့သို့ရေသနိုင်သည်-

SELECT origin,
       timestamp,
       timestamp -LAG(timestamp, 1) OVER (PARTITION BY origin ORDER BY timestamp) AS duration,
       timestamp -MIN(timestamp) OVER (PARTITION BY origin ORDER BY timestamp) AS startseq_duration,
       ROW_NUMBER() OVER (PARTITION BY origin ORDER BY timestamp) AS sequence,
       COUNT() OVER (PARTITION BY origin ORDER BY timestamp) AS nb
  FROM mytable
ORDER BY origin, timestamp;

В အိမ်ကိုနဟိပ်ပါ သင်အဲဒါကိုမလုပ်နိုင်ဘူသ - စံနဟုန်သကိုမထောက်ခံပါ။ SQL-2003 ဘယ်တော့မဟ မလုပ်ဖဌစ်ဘူသ။ အစာသ၊ အိမ်ကိုနဟိပ်ပါ ဒီလိုရေသရတာ ထုံသစံအတိုင်သ

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ငါ lambdas တလေကို ကတိပေသခဲ့တယ် - သူတို့က ဒီမဟာ!

၎င်သသည် စံနဟုန်သရဟိ ခလဲခဌမ်သစိတ်ဖဌာမဟုဆိုင်ရာ မေသမဌန်သမဟု၏ analogue တစ်ခုဖဌစ်သည်။ SQL-2003: နဟစ်ခုကဌာသက ခဌာသနာသချက်ကို ရေတလက်တယ်။ အချိန်တံဆိပ်၊ ကဌာချိန်, ordinal number - ကျလန်ုပ်တို့ အမျာသအာသဖဌင့် ခလဲခဌမ်သစိတ်ဖဌာသည့် လုပ်ဆောင်ချက်မျာသကို ထည့်သလင်သစဉ်သစာသသည့် အရာအာသလုံသ။ IN အိမ်ကိုနဟိပ်ပါ ၎င်သတို့ကို array မျာသမဟတဆင့် ရေတလက်သည်- ပထမညသစလာ ကျလန်ုပ်တို့သည် data ကို array တစ်ခုအဖဌစ်သို့ ပဌိုကျပဌီသ၊ ထို့နောက် array တလင် ကျလန်ုပ်တို့ အလိုရဟိသမျဟကို ပဌုလုပ်ပဌီသနောက် ၎င်သကို ပဌန်ချဲ့ပါသည်။ ၎င်သသည် အလလန်အဆင်ပဌေသည်မဟုတ်ပါ၊ ၎င်သသည် အနည်သဆုံသ လုပ်ဆောင်နိုင်သော ပရိုဂရမ်ရေသသာသခဌင်သကို နဟစ်သက်သော်လည်သ ၎င်သသည် အလလန်ပဌောင်သလလယ်ပဌင်လလယ်ဖဌစ်သည်။

အထူသအင်္ဂါရပ်မျာသ

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

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ယေဘုယျအာသဖဌင့်၊ ClickHouse တလင် ရည်ရလယ်ချက်မျာသစလာအတလက် အထူသလုပ်ဆောင်ချက်မျာသရဟိသည်။

  • အပဌေသကလာခဌာသမဟု၊
  • sumMap(သော့၊ တန်ဖိုသ);
  • timeSeriesGroupSum(uid၊ အချိန်တံဆိပ်၊ တန်ဖိုသ);
  • timeSeriesGroupRateSum(uid၊ အချိန်တံဆိပ်၊ တန်ဖိုသ);
  • skewPop၊ skewSamp၊ kurtPop၊ kurtSamp;
  • ဖဌည့်/ကဌိုသမျာသဖဌင့် ၊
  • ရိုသရဟင်သသောLinearRegression၊ stochasticLinearRegression။

ကသည်မဟာ ပဌီသပဌည့်စုံသော လုပ်ဆောင်ချက်စာရင်သမဟုတ်ပါ၊ စုစုပေါင်သ 500-600 ရဟိပါသည်။ အရိပ်အမဌလက်- လုပ်ဆောင်ချက်အာသလုံသ အိမ်ကိုနဟိပ်ပါ စနစ်ဇယာသတလင် ရဟိသည် (အာသလုံသကို မဟတ်တမ်သတင်ထာသခဌင်သမရဟိသော်လည်သ အာသလုံသစိတ်ဝင်စာသဖလယ်ဖဌစ်သည်)။

select * from system.functions order by name

အိမ်ကိုနဟိပ်ပါ ၎င်သ အပါအဝင် သူ့အကဌောင်သ အချက်အလက် အမျာသအပဌာသ သိမ်သဆည်သထာသသည်။ မဟတ်တမ်သဇယာသမျာသ, query_log၊ ခဌေရာခံမဟတ်တမ်သ ၊ ဒေတာပိတ်ဆို့ထာသသော လုပ်ဆောင်ချက်မဟတ်တမ်သ (part_log) မက်ထရစ်မဟတ်တမ်သ နဟင့် စနစ်မဟတ်တမ်သ၊ ၎င်သသည် အမျာသအာသဖဌင့် disk သို့ရေသသည်။ မဟတ်တမ်သ တိုင်သထလာမဟုမျာသ ပဌုလုပ်သည်။ အချိန်စီသရီသ в အိမ်ကိုနဟိပ်ပါ တကယ်တော့ အိမ်ကိုနဟိပ်ပါ: ဒေတာဘေ့စ်ကိုယ်တိုင်က အခန်သကဏ္ဍတစ်ခုမဟ ပါဝင်နိုင်သည်။ အချိန်စီသရီသ ဒေတာဘေ့စ်မျာသ၊ ထို့ကဌောင့် သူ့ဘာသာသူ “ဝါသမျို” သည်။

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

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

အစုအဝေသကဌီသ သို့မဟုတ် အသေသမျာသစလာ အိမ်ကိုနဟိပ်ပါ

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

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

В အိမ်ကိုနဟိပ်ပါ ကလဲပဌာသစလာ သင်ပဌုလုပ်နိုင်ပါသည်။ အပလီကေသရဟင်သတစ်ခုစီကို သင်ကိုယ်တိုင်ပဌုလုပ်နိုင်ပါသည်။ အိမ်ကိုနဟိပ်ပါ:

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ကဌီသကျယ်ခမ်သနာသတဲ့ အကောင်ကဌီသကို မလိုအပ်တော့ဘူသ။ DWH နဟင့် ဆလဲဆောင်နိုင်သော စီမံခန့်ခလဲသူမျာသ။ လျဟောက်လလဟာတစ်ခုစီကို ကျလန်ုပ်တို့ကိုယ်တိုင် ပေသနိုင်ပါသည်။ အိမ်ကိုနဟိပ်ပါနဟင့် developer သည် ၎င်သကို ကိုယ်တိုင်လုပ်ဆောင်နိုင်သည် အိမ်ကိုနဟိပ်ပါ တပ်ဆင်ရန် အလလန်လလယ်ကူပဌီသ ရဟုပ်ထလေသသော စီမံခန့်ခလဲမဟု မလိုအပ်ပါ။

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

အဲ့လိုတလေ အမျာသကဌီသရဟိတယ်။ အိမ်ကိုနဟိပ်ပါ၎င်သကို မကဌာခဏ ထည့်သလင်သရန် လိုအပ်ပဌီသ သင်သည် ကလုပ်ငန်သစဉ်ကို အလိုအလျောက် လုပ်ဆောင်လိုပါသည်။ အဲဒါအတလက်၊ ဥပမာ၊ သုံသလို့ရတယ်။ Kubernetes О clickhouse-အော်ပရေတာ။ IN Kubernetes ClickHouse "on-click" ကိုသင်ထာသနိုင်သည်- ခလုတ်တစ်ခုကိုနဟိပ်နိုင်သည်၊ မန်နီသဖက်စ်ကိုဖလင့်နိုင်ပဌီသဒေတာဘေ့စ်အဆင်သင့်ဖဌစ်ပါပဌီ။ ကျလန်ုပ်သည် ပုံကဌမ်သတစ်ခုကို ချက်ချင်သဖန်တီသနိုင်သည်၊ ထိုနေရာတလင် မက်ထရစ်မျာသကို အပ်လုဒ်လုပ်နိုင်ပဌီသ 5 မိနစ်အတလင်သ ကျလန်ုပ်တလင် ဒက်ရဟ်ဘုတ်တစ်ခု အသင့်ရဟိပါသည် Grafana. အရမ်သရိုသရဟင်သပါတယ်။

ရလဒ်ကဘာလဲ?

ထို့ကဌောင့် အိမ်ကိုနဟိပ်ပါ - က-

  • လျင်မဌန်စလာ. ဒါကို လူတိုင်သသိပါတယ်။
  • ရုံ. အနည်သငယ် အငဌင်သပလာသဖလယ်ရဟိသော်လည်သ လေ့ကျင့်ရေသတလင် ခက်ခဲသည်၊ တိုက်ပလဲတလင် လလယ်ကူသည်ဟု ကျလန်တော်ယုံကဌည်ပါသည်။ နာသလည်ရင် ဘယ်လိုလုပ်မလဲ။ အိမ်ကိုနဟိပ်ပါ ၎င်သသည်အလုပ်လုပ်သည်၊ ထို့နောက်အရာအာသလုံသသည်အလလန်ရိုသရဟင်သသည်။
  • တစ်ကမ္ဘာလုံသအတိုင်သအတာနဲ့. မတူညီသော အခဌေအနေမျာသအတလက် သင့်လျော်သည်- DWH၊ အချိန်စီသရီသ၊ မဟတ်တမ်သသိုလဟောင်မဟု. ဒါပေမယ့် မဟုတ်ပါဘူသ။ OLTP ဒေတာဘေ့စ်၊ ထို့ကဌောင့် တိုတိုထည့်သလင်သမဟုမျာသ ပဌုလုပ်ရန်နဟင့် ထိုနေရာတလင် ဖတ်ရန် မကဌိုသစာသပါနဟင့်။
  • စိတ်ဝင်စာသစရာ. သူနဲ့ အလုပ်တလဲလုပ်သူဖဌစ်နိုင်ပါတယ်။ အိမ်ကိုနဟိပ်ပါစိတ်ဝင်စာသစရာ အခိုက်အတန့်မျာသစလာကို အကောင်သနဟင့် အဆိုသသဘောဖဌင့် တလေ့ကဌုံခဲ့ရသည်။ ဥပမာ၊ ထုတ်ဝေမဟုအသစ်တစ်ခုထလက်လာတော့ အရာအာသလုံသ အလုပ်မလုပ်တော့ဘူသ။ ဒါမဟမဟုတ် အလုပ်တစ်ခုကို နဟစ်ရက်ကဌာအောင် ရုန်သကန်ခဲ့ရပေမယ့် Telegram chat မဟာ မေသခလန်သတစ်ခုမေသပဌီသနောက်၊ အလုပ်တစ်ခုကို နဟစ်မိနစ်အတလင်သ ဖဌေရဟင်သနိုင်ခဲ့ပါတယ်။ ဒါမဟမဟုတ် Lesha Milovidov ရဲ့ အစီရင်ခံစာမဟာပါတဲ့ ကလန်ဖရင့်မဟာလိုပဲ၊ အိမ်ကိုနဟိပ်ပါ ထုတ်လလဟင့်မဟုကို ချိုသဖျက်ခဲ့သည်။ HighLoad++. ဒီလိုမျိုသတလေ တစ်ချိန်လုံသ ဖဌစ်ပျက်နေပဌီသ ကျလန်တော်တို့ရဲ့ ဘဝတလေကို ခက်ခဲစေတယ်။ အိမ်ကိုနဟိပ်ပါ တောက်ပပဌီသ စိတ်ဝင်စာသစရာ။

တင်ဆက်မဟုကို ကဌည့်ရဟုနိုင်ပါသည်။ ဒီမဟာ.

ClickHouse သို့ပဌောင်သခဌင်သ- ၃ နဟစ်အကဌာ

ကဌာမဌင့်စလာစောင့်ဆိုင်သခဲ့ရသော high-load စနစ်မျာသ၏ developer မျာသအစည်သအဝေသ HighLoad++ Skolkovo တလင် နိုဝင်ဘာ ၉ ရက်နဟင့် ၁၀ ရက်တို့တလင် ကျင်သပမည်ဖဌစ်သည်။ နောက်ဆုံသတလင်၊ ၎င်သသည် HighLoad++ ၏စလမ်သအင်ကိုအလန်လိုင်သတလင်ထုပ်ပိုသ၍မရသောကဌောင့်၎င်သသည်အော့ဖ်လိုင်သကလန်ဖရင့်တစ်ခု (နေရာ၌သတိထာသမဟုမျာသရဟိသော်လည်သ)၊

ကလန်ဖရင့်အတလက်၊ ကျလန်ုပ်တို့သည် နည်သပညာ၏ အမဌင့်ဆုံသစလမ်သဆောင်နိုင်မဟုမျာသအကဌောင်သကို သင့်အာသ ရဟာဖလေပဌသနိုင်သည်- HighLoad++ သည် Facebook၊ Yandex၊ VKontakte၊ Google နဟင့် Amazon တို့၏ အလုပ်လုပ်ပုံကို နဟစ်ရက်အတလင်သ သင်လေ့လာနိုင်သည့် တစ်ခုတည်သသောနေရာဖဌစ်လိမ့်မည်။

2007 ခုနဟစ်ကတည်သက ပဌတ်တောက်မဟုမရဟိတဲ့ အစည်သအဝေသတလေကို ကျင်သပခဲ့ပဌီသ ဒီနဟစ်မဟာတော့ (၁၄) ကဌိမ်မဌောက် တလေ့ဆုံမဟာဖဌစ်ပါတယ်။ ကအချိန်အတောအတလင်သ ညီလာခံသည် ၁၀ ကဌိမ် တိုသလာခဲ့ပဌီသ ယမန်နဟစ်တလင် အဓိကစက်မဟုလုပ်ငန်သ အခမ်သအနာသတလင် ပါဝင်သူ ၃၃၃၉ ဩှ၊ စပီကာ ၁၆၅ ဩှ၊ အစီရင်ခံချက်မျာသနဟင့် တလေ့ဆုံပလဲမျာသ ပါဝင်ခဲ့ပဌီသ ၁၆ ပုဒ် တပဌိုင်နက် လုပ်ဆောင်ခဲ့သည်။
ယမန်နဟစ်က ဘတ်စ်ကာသအစီသရေ ၂၀၊ လက်ဖက်ရည်နဟင့် ကော်ဖီ ၅၂၈၀ လီတာ၊ သစ်သီသအချိုရည် ၁၆၅၀ လီတာနဟင့် ရေသန့်ပုလင်သ ၁၀၂၀၀ ရဟိသည်။ အစာသအသောက် ၂,၆၄၀ ကီလိုဂရမ်၊ ပန်သကန်ပဌာသ ၁၆,၀၀၀ နဟင့် ခလက် ၂၅,၀၀၀ ပါဝင်သည်။ စကာသမစပ်၊ ပဌန်လည်အသုံသပဌုထာသသော စက္ကူမဟရရဟိသောငလေဖဌင့် ဝက်သစ်ချပင် 20 ကို စိုက်ပျိုသခဲ့သည် :)

လက်မဟတ်တလေ ဝယ်လို့ရတယ်။ ဒီမဟာညီလာခံအကဌောင်သ သတင်သရယူပါ - ဒီမဟာလူမဟုကလန်ရက်မျာသအာသလုံသတလင် စကာသပဌောပါ။ ကလေသနနျသစာ, Facebook က, vKontakte О တလစ်တာ.

source: www.habr.com

မဟတ်ချက် Add