Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

clickhouse Yandex မဟ ဖန်တီသထာသသော အလန်လိုင်သ ခလဲခဌမ်သစိတ်ဖဌာမေသမဌန်သမဟုလုပ်ဆောင်ခဌင်သ (OLAP) အတလက် open-source columnar database စီမံခန့်ခလဲမဟုစနစ်တစ်ခုဖဌစ်သည်။ ၎င်သကို Yandex၊ CloudFlare၊ VK.com၊ Badoo နဟင့် ကမ္ဘာတစ်ဝဟမ်သရဟိ အခဌာသဝန်ဆောင်မဟုမျာသမဟ ဒေတာအမဌောက်အမဌာသ သိမ်သဆည်သရန် (တစ်စက္ကန့်လျဟင် အတန်သထောင်ပေါင်သမျာသစလာ ထည့်သလင်သခဌင်သ သို့မဟုတ် ဒစ်ခ်ပေါ်တလင် သိမ်သဆည်သထာသသည့် အချက်အလက် petabytes) ကို အသုံသပဌုပါသည်။

MySQL၊ Postgres၊ MS SQL Server ကဲ့သို့သော သာမာန် "string" DBMS တလင် ဒေတာမျာသကို ကအစီအစဥ်တလင် သိမ်သဆည်သသည်-

Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

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

Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

columnar DBMS မျာသ၏ ဥပမာမျာသမဟာ Vertica၊ Paraccel (Actian Matrix၊ Amazon Redshift), Sybase IQ, Exasol, Infobright, InfiniDB, MonetDB (VectorWise, Actian Vector), LucidDB, SAP HANA, Google Dremel, Google PowerDrill, Druid, kdb+။

ကုမ္ပဏီသည် mail forwarder ဖဌစ်သည်။ Qwintry အစီရင်ခံမဟုအတလက် Clickhouse ကို 2018 တလင် စတင်အသုံသပဌုခဲ့ပဌီသ ၎င်သ၏ရိုသရဟင်သမဟု၊ အတိုင်သအတာ၊ SQL ပံ့ပိုသမဟုနဟင့် မဌန်နဟုန်သတို့ကို အလလန်သဘောကျခဲ့သည်။ က DBMS ၏ အရဟိန်သည် မဟော်အတတ်နဟင့် ထိစပ်နေသည်။

သက်သာခဌင်သ

တစ်ခုတည်သသော command ဖဌင့် Ubuntu တလင် Clickhouse တပ်ဆင်သည်။ SQL ကိုသိပါက၊ သင့်လိုအပ်ချက်အတလက် Clickhouse ကို ချက်ချင်သစတင်အသုံသပဌုနိုင်ပါသည်။ သို့သော်၊ ၎င်သသည် MySQL တလင် "ဖန်တီသဇယာသ" ကိုပဌသပဌီသ Clickhouse တလင် SQL ကိုကော်ပီကူသထည့်နိုင်သည်ဟုမဆိုလိုပါ။

MySQL နဟင့် နဟိုင်သယဟဉ်ပါက က DBMS တလင် table schema အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသတလင် အရေသကဌီသသော data type ကလဲပဌာသမဟုမျာသ ရဟိနေသည်၊ ထို့ကဌောင့် table schema အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို ပဌောင်သလဲရန်နဟင့် အဆင်ပဌေစေရန် table engines မျာသကို လေ့လာရန် အချိန်အနည်သငယ် လိုအပ်နေသေသသည်။

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

ထလက်နိုင်ရေသ

Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

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

ClickHouse သည် ဒေတာဘေ့စ်တစ်ခုမျဟသာဖဌစ်သောကဌောင့် Kafka မဟ တိုက်ရိုက်ဒေတာလက်ခံခဌင်သကို မပံ့ပိုသပါ၊ ထို့ကဌောင့် ကျလန်ုပ်တို့၏ကိုယ်ပိုင် adapter ဝန်ဆောင်မဟုကို Go တလင် ရေသသာသခဲ့သည်။ ၎င်သသည် Cap'n Proto မဟ Kafka မဟ ကုဒ်လုပ်ထာသသော မက်ဆေ့ချ်မျာသကို ဖတ်ပဌပဌီသ TSV သို့ ပဌောင်သလဲကာ HTTP interface မဟတစ်ဆင့် အတလဲလိုက် ClickHouse ထဲသို့ ထည့်သလင်သခဲ့သည်။ စလမ်သဆောင်ရည် မဌဟင့်တင်ရန် ကျလန်ုပ်တို့၏ ကိုယ်ပိုင် ClickHouse အင်တာဖေ့စ်နဟင့် တလဲလျက် Go စာကဌည့်တိုက်ကို အသုံသပဌုရန် ကဝန်ဆောင်မဟုကို နောက်ပိုင်သတလင် ပဌန်လည်ရေသသာသခဲ့သည်။ လက်ခံထုပ်ပိုသခဌင်သ၏စလမ်သဆောင်ရည်ကို အကဲဖဌတ်သောအခါတလင် အရေသကဌီသသောအရာတစ်ခုကို ကျလန်ုပ်တို့တလေ့ရဟိခဲ့သည် - ClickHouse အတလက် ကလုပ်ဆောင်ချက်သည် ပက်ကတ်၏အရလယ်အစာသပေါ်တလင် ပဌင်သထန်စလာမူတည်သည်၊ ဆိုလိုသည်မဟာ တစ်ချိန်တည်သတလင်ထည့်သလင်သထာသသောအတန်သအရေအတလက်ကို ဆိုလိုပါသည်။ ဘာကဌောင့် ဒီလိုဖဌစ်ရတာလဲဆိုတာ နာသလည်ဖို့အတလက် ClickHouse က ဒေတာတလေကို ဘယ်လိုသိမ်သဆည်သမလဲဆိုတာကို လေ့လာခဲ့ပါတယ်။

ဒေတာသိမ်သဆည်သရန်အတလက် ClickHouse မဟအသုံသပဌုသည့် စာသပလဲတင်အင်ဂျင်မိသာသစု၏ အဓိကအင်ဂျင်သည် MergeTree ဖဌစ်သည်။ ကအင်ဂျင်သည် Google BigTable သို့မဟုတ် Apache Cassandra တလင်အသုံသပဌုသည့် LSM algorithm နဟင့် သဘောတရာသအရ ဆင်တူသော်လည်သ အလယ်အလတ်မဟတ်ဉာဏ်ဇယာသတစ်ခုတည်ဆောက်ကာ ဒေတာကို disk သို့ တိုက်ရိုက်ရေသသာသခဌင်သကို ရဟောင်ကဌဉ်သည်။ ထည့်သလင်သထာသသော ပက်ကေ့ခ်ျတစ်ခုစီကို "ပင်မကီသ" ပင်မကီသဖဌင့်သာ စီခလဲထာသသောကဌောင့် အပိုင်သတစ်ခုဖလဲ့စည်သရန် ဖိသိပ်ထာသကာ disk သို့ စာရေသလိုက်သောကဌောင့် ၎င်သသည် ကောင်သမလန်သော ရေသသလင်သနဟုန်သကို ပေသစလမ်သသည်။

မန်မိုရီဇယာသမရဟိခဌင်သ သို့မဟုတ် ဒေတာ၏ "လတ်ဆတ်မဟု" ၏ အယူအဆမျာသသည် ၎င်သတို့ကို ပေါင်သထည့်နိုင်ရုံသာမက စနစ်ပဌောင်သလဲခဌင်သ သို့မဟုတ် ဖျက်ခဌင်သတို့ကို ပံ့ပိုသပေသမည်မဟုတ်ကဌောင်သ ဆိုလိုသည်။ လောလောဆယ်တလင်၊ ဒေတာကိုဖျက်ရန် တစ်ခုတည်သသောနည်သလမ်သမဟာ အပိုင်သမျာသကို တစ်လကန့်သတ်ချက်မကျော်လလန်သောကဌောင့် ၎င်သကို ပဌက္ခဒိန်လအလိုက် ဖျက်ရန်ဖဌစ်သည်။ ClickHouse အဖလဲ့သည် ကအင်္ဂါရပ်ကို စိတ်ကဌိုက်ပဌင်ဆင်နိုင်စေရန် တက်ကဌလစလာ လုပ်ဆောင်နေပါသည်။ အခဌာသတစ်ဖက်တလင်၊ ၎င်သသည် အပိုင်သမျာသကို အငဌင်သအခုံကင်သစလာ ရေသသာသခဌင်သနဟင့် ပေါင်သစည်သခဌင်သတို့ကို ပဌုလုပ်ပေသသောကဌောင့် I/O သို့မဟုတ် cores မျာသမပဌည့်မချင်သ အပဌိုင်ထည့်သလင်သမဟုအရေအတလက်ဖဌင့် တစ်ဆင့်ခံစကေသမျာသကို မျဉ်သသာသစလာလက်ခံပါ။
သို့သော်၊ ကအခဌေအနေသည် စနစ်သည် သေသငယ်သော ပက်ကတ်မျာသအတလက် မသင့်လျော်ကဌောင်သကိုလည်သ ဆိုလိုသည်၊ ထို့ကဌောင့် Kafka ဝန်ဆောင်မဟုမျာသနဟင့် ထည့်သလင်သမဟုမျာသကို ကဌာသခံလုပ်ဆောင်ရန်အတလက် အသုံသပဌုပါသည်။ ထို့အပဌင်၊ နောက်ခံရဟိ ClickHouse သည် အပိုင်သမျာသကို စဉ်ဆက်မပဌတ် ပေါင်သစည်သလျက်ရဟိသည်၊ ထို့ကဌောင့် အချက်အလက်အသေသအမလဟာသမျာသစလာကို ပေါင်သစပ်ပဌီသ အကဌိမ်မျာသစလာ မဟတ်တမ်သတင်နိုင်မည်ဖဌစ်ပဌီသ၊ မဟတ်တမ်သတင်မဟုပဌင်သထန်မဟုကို တိုသမဌင့်စေပါသည်။ သို့သော်၊ ပေါင်သစည်သမဟု ဆက်လက်ရဟိနေသရလေ့ ဆက်စပ်မဟုမရဟိသော အစိတ်အပိုင်သမျာသ မျာသပဌာသလလန်သပါက ထည့်သလင်သမဟုမျာသကို ပဌင်သထန်စလာ အတာသအဆီသဖဌစ်စေသည်။ အချိန်နဟင့်တစ်ပဌေသညီ ဒေတာထည့်သလင်သခဌင်သနဟင့် စာသသုံသခဌင်သစလမ်သဆောင်ရည်ကဌာသတလင် အကောင်သဆုံသအပေသအယူသည် ဇယာသအတလင်သသို့ တစ်စက္ကန့်လျဟင် ထည့်သလင်သမဟုအရေအတလက် ကန့်သတ်ချက်ကို လက်ခံခဌင်သဖဌစ်သည်ကို ကျလန်ုပ်တို့တလေ့ရဟိခဲ့သည်။

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

ကော်လံအာသလုံသကို "ပင်မသော့ဖဌင့် စီထာသခဌင်သ" ဖဌစ်သောကဌောင့် အညလဟန်သဖိုင်တလင် Nth အတန်သတိုင်သ၏ အညလဟန်သမျာသ (ဖမ်သယူထာသသော အတန်သမျာသ) သာ ပါဝင်ပဌီသ အလလန်ကဌီသမာသသော ဇယာသမျာသအတလက်ပင် မဟတ်ဉာဏ်တလင် သိမ်သဆည်သထာသနိုင်စေရန်။ ဥပမာအာသဖဌင့်၊ သင်သည် ပုံသေဆက်တင်မျာသကို "8192th အတန်သတိုင်သကို အမဟတ်အသာသပဌုရန်" ၊ ထို့နောက် 1 ထရီလီယံရဟိသော ဇယာသတစ်ခု၏ "သေသငယ်သော" အညလဟန်သကိန်သကို သတ်မဟတ်နိုင်သည်။ Memory တလင် အလလယ်တကူ လိုက်ဖက်သော လိုင်သမျာသသည် စာလုံသရေ 122 သာ ရဟိသည်။

စနစ်ဖလံ့ဖဌိုသတိုသတက်မဟု

Clickhouse ၏ ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် တိုသတက်မဟုကို ခဌေရာခံနိုင်သည်။ Github repos နဟင့် "ကဌီသပဌင်သခဌင်သ" လုပ်ငန်သစဉ်သည် အထင်ကဌီသလောက်သော အရဟိန်အဟုန်ဖဌင့် ဖဌစ်ပေါ်လာကဌောင်သ သေချာပါစေ။

Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

လူကဌိုက်မျာသ

Clickhouse ၏ကျော်ကဌာသမဟုသည် အထူသသဖဌင့် ရုရဟာသစကာသပဌောအသိုင်သအဝိုင်သတလင် အဆမတန်ကဌီသထလာသလာပုံရသည်။ ပဌီသခဲ့သည့်နဟစ် High load 2018 ကလန်ဖရင့် (မော်စကို၊ နိုဝင်ဘာ 8-9၊ 2018) တလင် vk.com နဟင့် Badoo ကဲ့သို့သော monster မျာသသည် Clickhouse ကိုအသုံသပဌုပဌီသ ဆာဗာထောင်ပေါင်သမျာသစလာမဟဒေတာမျာသ (ဥပမာ၊ မဟတ်တမ်သမျာသ) ကို တစ်ပဌိုင်နက်ထည့်သလင်သပေသကဌောင်သပဌသခဲ့သည်။ မိနစ် 40 ဗီဒီယိုတလင် VKontakte အဖလဲ့မဟ Yuri Nasretdinov က ၎င်သကို မည်သို့လုပ်ဆောင်ခဲ့သည်ကို ဆလေသနလေသသည်။. မကဌာမီ ကျလန်ုပ်တို့သည် ပစ္စည်သနဟင့်အလုပ်လုပ်ရအဆင်ပဌေစေရန် Habr တလင် စာသာသမဟတ်တမ်သကို ပို့စ်တင်ပါမည်။

applications မျာသ

အချိန်အတော်ကဌာ သုတေသနပဌုပဌီသနောက်၊ ClickHouse သည် အသုံသဝင်နိုင်သည် သို့မဟုတ် MySQL၊ PostgreSQL၊ ELK၊ Google Big Query၊ Amazon RedShift၊ TimescaleDB၊ Hadoop၊ MapReduce၊ Pinot နဟင့် အခဌာသသော သမာသရိုသကျနဟင့် လူကဌိုက်မျာသသော ဖဌေရဟင်သနည်သမျာသကို အပဌီသအပဌတ်အစာသထိုသနိုင်သည့် နယ်ပယ်မျာသ ရဟိပါသည်။ ဒရူဒ အထက်ဖော်ပဌပါ DBMS ကို အဆင့်မဌဟင့်ရန် သို့မဟုတ် လုံသလုံသအစာသထိုသရန် ClickHouse ကိုအသုံသပဌုခဌင်သ၏အသေသစိတ်အချက်မျာသမဟာ အောက်ပါတို့ဖဌစ်သည်။

MySQL နဟင့် PostgreSQL ကို တိုသချဲ့ခဌင်သ။

မကဌာသေသမီက၊ ကျလန်ုပ်တို့သည် သတင်သလလဟာပလပ်ဖောင်သအတလက် ClickHouse ဖဌင့် MySQL ကို တစ်စိတ်တစ်ပိုင်သ အစာသထိုသခဲ့သည်။ Mautic သတင်သလလဟာ. ပဌဿနာမဟာ MySQL သည် စိတ်ကူသယဉ်မထာသသော ဒီဇိုင်သကဌောင့် ပေသပို့လိုက်သော အီသမေသလ်တိုင်သနဟင့် ထိုအီသမေသလ်ရဟိ လင့်ခ်တိုင်သကို base64 hash ဖဌင့် မဟတ်သာသထာသပဌီသ ကဌီသမာသသော MySQL ဇယာသ (email_stats) ကို ဖန်တီသခဌင်သဖဌစ်သည်။ ဝန်ဆောင်မဟု၏ စာရင်သသလင်သသူမျာသထံ အီသမေသလ် 10 သန်သသာ ပေသပို့ပဌီသနောက်၊ ကဇယာသသည် ဖိုင်နေရာ 150 GB ကို သိမ်သပိုက်ခဲ့ပဌီသ MySQL သည် ရိုသရဟင်သသောမေသခလန်သမျာသအတလက် "မိုက်မဲခဌင်သ" စတင်ခဲ့သည်။ ဖိုင်နေရာလလတ်ပဌဿနာကို ဖဌေရဟင်သရန် ကျလန်ုပ်တို့သည် InnoDB ဇယာသချုံ့မဟုကို အောင်မဌင်စလာအသုံသပဌုခဲ့ပဌီသ ၎င်သကို အချက် 4 ဖဌင့် လျဟော့ချခဲ့သည်။ သို့သော်လည်သ၊ အကဌောင်သအမျိုသမျိုသကဌောင့် စကင်န်ဖတ်ခဌင်သရလဒ်မျာသကို လဲလဟယ်ပဌီသ လေသလံသော I/O ဖဌင့် လေသလံသော I/O ဖဌင့် ရိုသရဟင်သသောမေသမဌန်သမဟုတိုင်သကို ဖတ်ရန်သမိုင်သအတလက်သာ MySQL တလင် အီသမေသလ် သန်သ 20 မဟ 30 ကျော်ကို သိမ်သဆည်သထာသရန်မဟာ အဓိပ္ပါယ်မရဟိပါ။ Zabbix သတိပေသချက်မျာသကို ကျလန်ုပ်တို့ ပုံမဟန်လက်ခံရရဟိသည့်ကိစ္စ။

Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

Clickhouse သည် ဒေတာပမာဏကို လျဟော့ချပေသသည့် ချုံ့မဟု အယ်လဂိုရီသမ်နဟစ်ခုကို အသုံသပဌုသည်။ 3-4 ကဌိမ်သို့သော် ကကိစ္စတလင်၊ ဒေတာသည် အထူသသဖဌင့် "ဖိသိပ်နိုင်သည်" ဖဌစ်သည်။

Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

ELK အစာသထိုသခဌင်သ။

ကျလန်ုပ်၏ကိုယ်ပိုင်အတလေ့အကဌုံအပေါ်အခဌေခံ၍ ELK stack (ElasticSearch၊ Logstash နဟင့် Kibana၊ ကကိစ္စရပ်တလင် ElasticSearch) သည် မဟတ်တမ်သမျာသသိမ်သဆည်သရန် လိုအပ်သည်ထက် လုပ်ဆောင်ရန် အရင်သအမဌစ်မျာသစလာ လိုအပ်ပါသည်။ ElasticSearch သည် ကောင်သမလန်သော စာသာသမဟတ်တမ်သရဟာဖလေမဟုကို လိုချင်လျဟင် (အမဟန်တကယ် မလိုအပ်ဟု ကျလန်တော်မထင်ပါ)၊ သို့သော် ၎င်သသည် ဘာကဌောင့် de facto standard logging engine ဖဌစ်လာရသည်ကို အံ့သဌနေပါသည်။ Logstash နဟင့် ပေါင်သစပ်ထာသသော ၎င်သ၏ စာသသုံသမဟု စလမ်သဆောင်ရည်သည် ပေါ့ပါသသော အလုပ်မျာသတလင်ပင် ပဌဿနာမျာသကို ပေသစလမ်သပဌီသ RAM နဟင့် disk space ပိုမျာသလာရန် လိုအပ်ပါသည်။ ဒေတာဘေ့စ်တစ်ခုအနေဖဌင့်၊ Clickhouse သည် အောက်ပါအကဌောင်သမျာသကဌောင့် ElasticSearch ထက် ပိုမိုကောင်သမလန်ပါသည်။

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

လောလောဆယ်တလင် ClickHouse ကို ELK နဟင့် နဟိုင်သယဟဉ်သောအခါတလင် အကဌီသမာသဆုံသပဌဿနာမဟာ မဟတ်တမ်သမျာသတင်ခဌင်သအတလက် ဖဌေရဟင်သနည်သမျာသမရဟိခဌင်သအပဌင် ကအကဌောင်သအရာအတလက် စာရလက်စာတမ်သနဟင့် သင်ခန်သစာမျာသမရဟိခဌင်သပင်ဖဌစ်သည်။ တစ်ချိန်တည်သမဟာပင်၊ အသုံသပဌုသူတစ်ညသစီသည် ယင်သနည်သပညာမျာသကို လျင်မဌန်စလာအကောင်အထည်ဖော်ရန်အတလက် အလလန်အရေသကဌီသသည့် Digital Ocean manual ကို အသုံသပဌု၍ ELK ကို စနစ်ထည့်သလင်သနိုင်သည်။ ကနေရာတလင် ဒေတာဘေ့စ်အင်ဂျင်တစ်ခုရဟိသော်လည်သ ClickHouse အတလက် Filebeat မရဟိသေသပါ။ ဟုတ်တယ်၊ ရဟိတယ်။ ကျလမ်သကျင်စလာ နဟင့် သစ်လုံသမျာသဖဌင့် အလုပ်လုပ်သည့်စနစ် သစ်လုံသအိမ်, tool တစ်ခုရဟိပါတယ်။ အမဌီသကိုနဟိပ်ပါ။ မဟတ်တမ်သဖိုင်ဒေတာကို ClickHouse သို့ထည့်ရန်၊ သို့သော် ကအရာအာသလုံသသည် အချိန်ပိုကဌာသည်။ သို့သော်၊ ClickHouse သည် ၎င်သ၏ရိုသရဟင်သမဟုကဌောင့် လမ်သကိုညသတည်နေဆဲဖဌစ်သောကဌောင့် စတင်သူမျာသပင်လျဟင် ၎င်သကိုအလလယ်တကူထည့်သလင်သနိုင်ပဌီသ 10 မိနစ်အတလင်သ အပဌည့်အဝအသုံသပဌုနိုင်ပါသည်။

ရိုသရဟင်သသော ဖဌေရဟင်သနည်သမျာသကို ညသစာသပေသ၍ Kafka ကို ရဟောင်ရဟာသရန် ကဌိုသစာသစဉ် ClickHouse ဖဌင့် အလလန်နိမ့်သော memory log upload tool ဖဌစ်သော FluentBit ကို အသုံသပဌု၍ ကဌိုသစာသခဲ့ပါသည်။ သို့သော် တူညီမဟုမရဟိသော အသေသအမလဟာသကိစ္စမျာသကို ဖဌေရဟင်သရန် လိုအပ်ပါသည်။ ရက်စလဲဖော်မတ်ပဌဿနာမျာသဒေတာကို FluentBit မဟ ClickHouse သို့ ပဌောင်သပေသသည့် ပရောက်စီအလလဟာမပါဘဲ ၎င်သကို မလုပ်ဆောင်မီ။

Kibana ၏အခဌာသရလေသချယ်စရာအဖဌစ်၊ သင်သည် ClickHouse ကို နောက်ခံအဖဌစ် အသုံသပဌုနိုင်သည်။ Grafana. ကျလန်ုပ်နာသလည်သလောက်၊ ၎င်သသည် အထူသသဖဌင့် Grafana ဗာသရဟင်သအဟောင်သမျာသနဟင့် ဒေတာအချက်မျာသစလာကို တင်ဆက်သည့်အခါ စလမ်သဆောင်ရည်ပဌဿနာမျာသ ဖဌစ်စေနိုင်သည်။ Qwintry တလင်၊ ကျလန်ုပ်တို့သည် ၎င်သကို မစမ်သရသေသသော်လည်သ Telegram ရဟိ ClickHouse ပံ့ပိုသမဟုချန်နယ်တလင် ကအကဌောင်သနဟင့်ပတ်သက်သည့် တိုင်ကဌာသချက်မျာသသည် အခါအာသလျော်စလာ ပေါ်လာပါသည်။

Google Big Query နဟင့် Amazon RedShift (ကုမ္ပဏီကဌီသမျာသအတလက် ဖဌေရဟင်သချက်)

BigQuery အတလက် အကောင်သဆုံသအသုံသပဌုမဟုကိစ္စမဟာ 1TB JSON ဒေတာကို တင်ပဌီသ ၎င်သတလင် ခလဲခဌမ်သစိတ်ဖဌာမဟုဆိုင်ရာ မေသမဌန်သချက်မျာသကို လုပ်ဆောင်ရန်ဖဌစ်သည်။ Big Query သည် အလလန်အမင်သခန့်မဟန်သရခက်သော အရလယ်အစာသကဌီသမာသသော ထုတ်ကုန်တစ်ခုဖဌစ်သည်။ ၎င်သသည် အတလင်သပိုင်သအစုအဝေသတစ်ခုပေါ်တလင်လည်ပတ်နေသော ClickHouse ထက်ပိုမိုရဟုပ်ထလေသသောဆော့ဖ်ဝဲလ်ဖဌစ်သည်၊ သို့သော် client ၏အမဌင်အရ၊ ၎င်သသည် ClickHouse နဟင့်မျာသစလာတူညီသည်။ BigQuery သည် SELECT တစ်ခုစီအတလက် ငလေပေသချေပဌီသသည်နဟင့် လျင်မဌန်စလာ "စျေသနဟုန်သတက်နိုင်သည်" ဖဌစ်သောကဌောင့် ၎င်သသည် ၎င်သ၏ အာသသာချက်မျာသနဟင့် အာသနည်သချက်မျာသအာသလုံသပါရဟိသော တကယ့် SaaS ဖဌေရဟင်သချက်တစ်ခုဖဌစ်သည်။

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

Altinity ကို ပူသတလဲတည်ထောင်သူ Alexander Zaitsev ၏ ဆောင်သပါသတစ်ပုဒ်တလင် ဖော်ပဌထာသသည်။ "ClickHouse သို့ပဌောင်သခဌင်သ" ထိုသို့သော DBMS ပဌောင်သရလဟေ့ခဌင်သ၏ အကျိုသကျေသဇူသမျာသကို ဖော်ပဌသည်။

TimescaleDB အစာသထိုသခဌင်သ။

TimescaleDB သည် ပုံမဟန်ဒေတာဘေ့စ်တစ်ခုတလင် အကဌိမ်ရေနဟင့် အလုပ်လုပ်ခဌင်သကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်ပေသသည့် PostgreSQL တိုသချဲ့မဟုတစ်ခုဖဌစ်သည်။https://docs.timescale.com/v1.0/introduction, https://habr.com/ru/company/zabbix/blog/458530/).

ClickHouse သည် time series niche တလင်ပဌင်သထန်သောပဌိုင်ဘက်မဟုတ်သော်လည်သ columnar structure နဟင့် vector query execution အရ၊ ခလဲခဌမ်သစိတ်ဖဌာမေသမဌန်သမဟုမျာသကိုလုပ်ဆောင်သည့်ကိစ္စအမျာသစုတလင် TimescaleDB ထက်ပိုမိုမဌန်ဆန်ပါသည်။ တစ်ချိန်တည်သမဟာပင်၊ ClickHouse packet data ကိုလက်ခံရရဟိခဌင်သ၏စလမ်သဆောင်ရည်သည် 3 ဆခန့်ပိုမိုမဌင့်မာသသည်၊ ထို့အပဌင်၎င်သသည်သမိုင်သဝင်အချက်အလက်မျာသ၏ကဌီသမာသသောပမာဏကိုလုပ်ဆောင်ခဌင်သအတလက်တကယ့်ကိုအရေသကဌီသသော၊ ၎င်သသည်အဆ 20 ပိုနည်သသော disk space ကိုအသုံသပဌုသည်- ‹https://www.altinity.com/blog/ClickHouse-for-time-series.

ClickHouse နဟင့်မတူဘဲ TimescaleDB တလင် disk space အချို့ကိုသိမ်သဆည်သရန်တစ်ခုတည်သသောနည်သလမ်သမဟာ ZFS သို့မဟုတ် အလာသတူဖိုင်စနစ်မျာသကိုအသုံသပဌုရန်ဖဌစ်သည်။

ClickHouse အတလက် လာမည့်အပ်ဒိတ်မျာသသည် အချိန်စီသရီသဒေတာကို လုပ်ဆောင်ခဌင်သနဟင့် သိမ်သဆည်သခဌင်သအတလက် ပိုမိုသင့်လျော်စေမည့် delta compression ကို မိတ်ဆက်ပေသဖလယ်ရဟိသည်။ TimescaleDB သည် အောက်ပါကိစ္စမျာသတလင် ClickHouse မပါရဟိခဌင်သထက် ပိုမိုကောင်သမလန်သောရလေသချယ်မဟုဖဌစ်နိုင်သည်-

  • အလလန်နည်သသော RAM (<3 GB);
  • ကဌီသမာသသောအပိုင်သအစမျာသအဖဌစ်သို့ သင် ကဌာသခံမခံချင်သော သေသငယ်သော INSERT အမျာသအပဌာသ၊
  • ပိုမိုကောင်သမလန်သော ညီညလတ်မဟု၊ တူညီမဟုနဟင့် ACID လိုအပ်ချက်မျာသ၊
  • PostGIS ပံ့ပိုသမဟု;
  • Timescale DB သည် မရဟိမဖဌစ်လိုအပ်သော PostgreSQL ဖဌစ်သောကဌောင့် ရဟိပဌီသသာသ PostgreSQL ဇယာသမျာသနဟင့် ပေါင်သစည်သပါ။

Hadoop နဟင့် MapReduce စနစ်မျာသဖဌင့် ယဟဉ်ပဌိုင်ခဌင်သ။

Hadoop နဟင့် အခဌာသသော MapReduce ထုတ်ကုန်မျာသသည် ရဟုပ်ထလေသသော တလက်ချက်မဟုမျာသကို လုပ်ဆောင်နိုင်သော်လည်သ ၎င်သတို့သည် ကဌီသမာသသော latency ဖဌင့် လုပ်ဆောင်လေ့ရဟိပါသည်။ ClickHouse သည် ဒေတာ terabytes မျာသကို လုပ်ဆောင်ပဌီသ ရလဒ်မျာသကို ချက်ချင်သနီသပါသထုတ်ပေသခဌင်သဖဌင့် ကပဌဿနာကို ဖဌေရဟင်သပေသပါသည်။ ထို့ကဌောင့် ClickHouse သည် ဒေတာသိပ္ပံပညာရဟင်မျာသအတလက် စိတ်ဝင်စာသသင့်သည့် လျင်မဌန်သော အပဌန်အလဟန်တုံ့ပဌန်မဟုဆိုင်ရာ ခလဲခဌမ်သစိတ်ဖဌာမဟုဆိုင်ရာ သုတေသနကို လုပ်ဆောင်ရန်အတလက် ပိုမိုထိရောက်ပါသည်။

Pinot နဟင့် Druid တို့နဟင့် ယဟဉ်ပဌိုင်ခဌင်သ။

ClickHouse ၏ အနီသစပ်ဆုံသ ပဌိုင်ဘက်မျာသမဟာ ကော်လံဘာသမျာသ၊ မျဉ်သအတိုင်သ အတိုင်သအတာဖဌင့် ချဲ့ထလင်နိုင်သော open source ထုတ်ကုန် Pinot နဟင့် Druid တို့ဖဌစ်သည်။ ကစနစ်မျာသကို နဟိုင်သယဟဉ်ရန် အကောင်သဆုံသအလုပ်တစ်ခုကို ဆောင်သပါသတလင် ဖော်ပဌထာသသည်။ Romana Leventova ဖေဖော်ဝါရီ ၁ ရက်၊ ၂၀၁၈

Clickhouse ကို ELK၊ Big Query နဟင့် TimescaleDB အတလက် အစာသထိုသအဖဌစ် အသုံသပဌုခဌင်သ။

ကဆောင်သပါသကို အပ်ဒိတ်လုပ်ရန် လိုအပ်သည် - ClickHouse သည် UPDATE နဟင့် DELETE လုပ်ဆောင်ချက်မျာသကို မပံ့ပိုသနိုင်ဟု ဆိုသည်၊၊ ၎င်သသည် နောက်ဆုံသထလက်ဗာသရဟင်သမျာသနဟင့် ဆက်စပ်၍ လုံသဝမမဟန်ပါ။

ကျလန်ုပ်တို့တလင် က DBMSs မျာသနဟင့် ပတ်သက်၍ အတလေ့အကဌုံ သိပ်မရဟိသော်လည်သ Druid နဟင့် Pinot ကို လုပ်ဆောင်ရန် လိုအပ်သော အခဌေခံအဆောက်အည၏ ရဟုပ်ထလေသမဟုကို မကဌိုက်ပါ - ၎င်သသည် ဘက်ပေါင်သစုံမဟ Java ဖဌင့် ဝန်သရံထာသသော "ရလေ့လျာသနေသော အစိတ်အပိုင်သမျာသ" ၏ အစုအစည်သတစ်ခုဖဌစ်သည်။

Druid နဟင့် Pinot တို့သည် ၎င်သတို့၏ GitHub ပရောဂျက်စာမျက်နဟာမျာသတလင် Apache မဟ အသေသစိတ်ဖော်ပဌထာသသော Apache incubator ပရောဂျက်မျာသဖဌစ်သည်။ Pinot သည် 2018 အောက်တိုဘာလတလင် incubator တလင်ပေါ်လာခဲ့ပဌီသ Druid သည် 8 လအစောပိုင်သ - ဖေဖော်ဝါရီလတလင်မလေသဖလာသခဲ့သည်။

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

ClickHouse ၏အာသနည်သချက်မျာသ

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

သေသငယ်သောထည့်သလင်သမဟုမျာသသည် အရဟိန်အဟုန်မဌင့်စလာဖဌင့် ကောင်သစလာမလုပ်ဆောင်နိုင်ပါ- သေသငယ်သောထည့်သလင်သမဟုမျာသ၏စလမ်သဆောင်ရည်သည် အတန်သတစ်ခုစီရဟိ ကော်လံအရေအတလက်နဟင့် အချိုသအစာသ ကျဆင်သသလာသသောကဌောင့် ထည့်သလင်သမဟုမျာသကို ကဌီသမာသသောအတုံသမျာသအဖဌစ် ပိုင်သခဌာသရပါမည်။ ကသည်မဟာ ClickHouse သည် ဒစ်ခ်ပေါ်တလင် ဒေတာကို သိမ်သဆည်သပုံဖဌစ်သည် - ကော်လံတစ်ခုစီသည် ဖိုင် 1 ဖိုင် သို့မဟုတ် ထို့ထက်ပိုသည်ဟု ဆိုလိုသည်၊ ထို့ကဌောင့် ကော်လံ 1 ပါဝင်သော အတန်သ 100 တန်သကို ထည့်သလင်သရန်အတလက် သင်သည် အနည်သဆုံသ ဖိုင် 100 ကိုဖလင့်ပဌီသ ရေသသာသရန် လိုအပ်သည်။ အဘယ်ကဌောင့်ဆိုသော် buffering ထည့်သလင်သခဌင်သသည် ကဌာသခံတစ်ခု လိုအပ်သည် ( client ကိုယ်တိုင်က buffering မပေသပါက ) - မျာသသောအာသဖဌင့် Kafka သို့မဟုတ် တန်သစီခဌင်သစနစ်မျိုသဖဌစ်သည်။ MergeTree ဇယာသမျာသအတလင်သ ဒေတာအမဌောက်အမဌာသကို နောက်ပိုင်သတလင် ကော်ပီကူသရန် Buffer table engine ကို အသုံသပဌုနိုင်သည်။

ဇယာသချိတ်ဆက်မဟုမျာသကို ဆာဗာ RAM ဖဌင့် ကန့်သတ်ထာသသော်လည်သ အနည်သဆုံသ ၎င်သတို့မဟာ ရဟိနေပါသည်။ ဥပမာအာသဖဌင့်၊ Druid နဟင့် Pinot တို့သည် node မျာသကဌာသတလင် ဒေတာအမဌောက်အမဌာသကို ရလေ့လျာသခဌင်သကို မပံ့ပိုသနိုင်သော ဖဌန့်ဝေသည့်စနစ်မျာသတလင် တိုက်ရိုက်အကောင်အထည်ဖော်ရန် ခက်ခဲသောကဌောင့် ၎င်သတို့သည် ချိတ်ဆက်မဟုလုံသဝမရဟိပါ။

တလေ့ရဟိချက်မျာသ

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

ကဌော်ငဌာအချို့ 🙂

ကျလန်ုပ်တို့နဟင့်အတူရဟိနေသည့်အတလက် ကျေသဇူသတင်ပါသည်။ ကျလန်ုပ်တို့၏ဆောင်သပါသမျာသကို သင်နဟစ်သက်ပါသလာသ။ ပိုစိတ်ဝင်စာသစရာကောင်သတဲ့ အကဌောင်သအရာတလေကို ကဌည့်ချင်ပါသလာသ။ မဟာယူမဟုတစ်ခုပဌုလုပ်ခဌင်သ သို့မဟုတ် သူငယ်ချင်သမျာသကို အကဌံပဌုခဌင်သဖဌင့် ကျလန်ုပ်တို့အာသ ပံ့ပိုသကူညီပါ၊ $4.99 မဟ developer မျာသအတလက် cloud VPS, မင်သအတလက် ငါတို့က တီထလင်ထာသတဲ့ entry-level server တလေရဲ့ ထူသခဌာသတဲ့ analogue တစ်ခု။ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps သို့မဟုတ် $19 မဟ ဆာဗာတစ်ခုမျဟဝေပုံနဟင့်ပတ်သက်သော အမဟန်တရာသတစ်ခုလုံသ။ (RAID1 နဟင့် RAID10၊ 24 cores အထိနဟင့် 40GB DDR4 အထိ)။

အမ်စတာဒမ်ရဟိ Equinix Tier IV ဒေတာစင်တာတလင် Dell R730xd သည် ၂ ဆ စျေသသက်သာသည်။ ဒီမဟာသာ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ကို $199 မဟ နယ်သာလန်မဟာ Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 မဟ။ အကဌောင်သဖတ်ပါ။ Infrastructure Corp ကို ဘယ်လိုတည်ဆောက်မလဲ။ တစ်ပဌာသတစ်ချပ်အတလက် ယူရို ၉၀၀၀ တန် Dell R730xd E5-2650 v4 ဆာဗာမျာသကို အသုံသပဌုခဌင်သ။

source: www.habr.com

မဟတ်ချက် Add