کلک ہاؤس میں منتقل ہونا: 3 سال بعد

تین سال پہلے وکٹر ترناوسکی اور الیکسی میلووڈوف سٹیج پر Yandex سے ہائی لوڈ++ کہاکلک ہاؤس کتنا اچھا ہے، اور یہ کس طرح سست نہیں ہوتا ہے۔ اور اگلے مرحلے پر تھا الیگزینڈر زیٹسیف с رپورٹ منتقل کرنے کے بارے میں کلک ہاؤس ایک اور تجزیاتی DBMS سے اور اس نتیجے کے ساتھ کہ کلک ہاؤسبالکل، اچھا، لیکن بہت آسان نہیں۔ جب 2016 میں کمپنی لائف اسٹریٹ، جہاں اس کے بعد الیگزینڈر کام کرتا تھا، ایک کثیر پیٹا بائٹ تجزیاتی نظام کو تبدیل کر رہا تھا۔ کلک ہاؤس، یہ نامعلوم خطرات سے بھری ایک دلچسپ "پیلی اینٹوں والی سڑک" تھی۔ کلک ہاؤس پھر یہ ایک بارودی سرنگ کی طرح دکھائی دیتا تھا۔

تین سال کے بعد کلک ہاؤس بہت بہتر ہو گیا - اس دوران الیگزینڈر نے کمپنی Altinity کی بنیاد رکھی، جو نہ صرف لوگوں کو وہاں جانے میں مدد دیتی ہے۔ کلک ہاؤس منصوبوں کے درجنوں، بلکہ Yandex سے ساتھیوں کے ساتھ مل کر مصنوعات خود کو بہتر بناتا ہے. ابھی کلک ہاؤس اب بھی ایک لاپرواہ ٹہلنا نہیں ہے، لیکن اب ایک بارودی میدان نہیں ہے.

الیگزینڈر 2003 سے تقسیم شدہ نظاموں کے ساتھ کام کر رہا ہے، اس پر بڑے پروجیکٹ تیار کر رہا ہے۔ MySQL، اوریکل и ورٹیکا. آخری پر ہائی لوڈ++ 2019 الیگزینڈر، استعمال کرنے کے علمبرداروں میں سے ایک کلک ہاؤس، بتایا کہ یہ DBMS اب کیا ہے۔ ہم اہم خصوصیات کے بارے میں سیکھیں گے۔ کلک ہاؤس: یہ دوسرے سسٹمز سے کس طرح مختلف ہے اور کن صورتوں میں اس کا استعمال زیادہ موثر ہے۔ مثالوں کا استعمال کرتے ہوئے، ہم پر مبنی نظام کی تعمیر کے لیے حالیہ اور پراجیکٹ کے ٹیسٹ شدہ طریقوں کو دیکھیں گے۔ کلک ہاؤس.


سابقہ: 3 سال پہلے کیا ہوا تھا۔

تین سال پہلے ہم نے کمپنی کو منتقل کیا۔ لائف اسٹریٹ پر کلک ہاؤس ایک اور تجزیاتی ڈیٹا بیس سے، اور اشتھاراتی نیٹ ورک کی تجزیاتی منتقلی اس طرح نظر آئی:

  • جون 2016. میں آزاد مصدر شائع کلک ہاؤس اور ہمارا پروجیکٹ شروع ہوا۔
  • اگست۔ تصور کا ثبوت: بڑا ایڈورٹائزنگ نیٹ ورک، انفراسٹرکچر اور 200-300 ٹیرا بائٹس ڈیٹا؛
  • اکتوبر پہلی پیداوار کے اعداد و شمار؛
  • دسمبر مکمل پروڈکٹ کا بوجھ 10-50 بلین ایونٹس فی دن ہے۔
  • جون 2017. صارفین کی کامیاب منتقلی کلک ہاؤس، 2,5 سرورز کے کلسٹر پر 60 پیٹا بائٹس ڈیٹا۔

ہجرت کے عمل کے دوران، ایک بڑھتی ہوئی سمجھ تھی کہ کلک ہاؤس ایک اچھا نظام ہے جس کے ساتھ کام کرنا خوشگوار ہے، لیکن یہ Yandex کا اندرونی منصوبہ ہے۔ لہذا، باریکیاں ہیں: Yandex پہلے اپنے اندرونی گاہکوں کے ساتھ اور صرف اس کے بعد کمیونٹی اور بیرونی صارفین کی ضروریات کے ساتھ معاملہ کرے گا، اور ClickHouse پھر بہت سے فعال علاقوں میں انٹرپرائز کی سطح تک نہیں پہنچا۔ اسی لیے ہم نے مارچ 2017 میں بنانے کے لیے Altinity کی بنیاد رکھی کلک ہاؤس اس سے بھی تیز اور زیادہ آسان نہ صرف Yandex کے لیے بلکہ دوسرے صارفین کے لیے بھی۔ اور اب ہم:

  • ہم تربیت دیتے ہیں اور اس کی بنیاد پر حل تیار کرنے میں مدد کرتے ہیں۔ کلک ہاؤس تاکہ گاہک پریشانی میں نہ پڑیں، اور اس کا حل بالآخر کام کرتا ہے۔
  • ہم 24/7 سپورٹ فراہم کرتے ہیں۔ کلک ہاؤس- تنصیبات؛
  • ہم اپنے ماحولیاتی نظام کے منصوبے تیار کرتے ہیں۔
  • ہم فعال طور پر خود سے عہد کرتے ہیں۔ کلک ہاؤس، ان صارفین کی درخواستوں کا جواب دینا جو کچھ خصوصیات دیکھنا چاہتے ہیں۔

اور ظاہر ہے، ہم وہاں جانے میں مدد کرتے ہیں۔ کلک ہاؤس с MySQL, ورٹیکا, اوریکل, گرین پلم, Redshift اور دیگر نظام. ہم مختلف چالوں میں شامل رہے ہیں، اور وہ سب کامیاب رہے ہیں۔

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

کیوں منتقل کلک ہاؤس

سست نہیں ہوتا! یہ بنیادی وجہ ہے۔ کلک ہاؤس - مختلف منظرناموں کے لیے بہت تیز ڈیٹا بیس:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

لوگوں کے بے ترتیب اقتباسات جو ایک طویل عرصے سے لوگوں کے ساتھ کام کر رہے ہیں۔ کلک ہاؤس.

توسیع پذیری کسی دوسرے ڈیٹا بیس پر آپ ہارڈ ویئر کے ایک ٹکڑے پر اچھی کارکردگی حاصل کر سکتے ہیں، لیکن کلک ہاؤس آپ صرف سرورز کو شامل کرکے نہ صرف عمودی طور پر بلکہ افقی طور پر بھی پیمانہ کرسکتے ہیں۔ ہر چیز اتنی آسانی سے کام نہیں کرتی جیسا کہ ہم چاہتے ہیں، لیکن یہ کام کرتا ہے۔ جیسا کہ آپ کا کاروبار بڑھتا ہے آپ سسٹم کو بڑھا سکتے ہیں۔ یہ ضروری ہے کہ ہم ابھی حل تک محدود نہ رہیں اور ترقی کے امکانات ہمیشہ موجود رہتے ہیں۔

پورٹیبلٹی. ایک چیز سے کوئی لگاؤ ​​نہیں ہے۔ مثال کے طور پر، کے ساتھ ایمیزون ریڈ شفٹ کہیں منتقل ہونا مشکل ہے۔ اے کلک ہاؤس آپ اسے اپنے لیپ ٹاپ، سرور پر انسٹال کر سکتے ہیں، اسے کلاؤڈ پر تعینات کر سکتے ہیں، پر جا سکتے ہیں۔ Kubernetes - بنیادی ڈھانچے کے کام پر کوئی پابندیاں نہیں ہیں۔ یہ سب کے لیے آسان ہے، اور یہ ایک بہت بڑا فائدہ ہے جس پر بہت سے دوسرے ڈیٹا بیس فخر نہیں کر سکتے۔

لچک۔. کلک ہاؤس ایک چیز پر نہیں رکتا، مثال کے طور پر، Yandex.Metrica، لیکن ترقی کرتا ہے اور زیادہ سے زیادہ مختلف منصوبوں اور صنعتوں میں استعمال ہوتا ہے۔ نئے مسائل کو حل کرنے کے لیے نئی صلاحیتوں کو شامل کرکے اسے بڑھایا جا سکتا ہے۔ مثال کے طور پر، یہ خیال کیا جاتا ہے کہ لاگز کو ڈیٹا بیس میں محفوظ کرنا برا آداب ہے، اس لیے وہ سامنے آئے۔ Elasticsearch. لیکن لچک کا شکریہ کلک ہاؤس، آپ اس میں لاگز بھی اسٹور کرسکتے ہیں، اور اکثر یہ اندر سے بھی بہتر ہوتا ہے۔ Elasticsearch - کلک ہاؤس اس کے لیے 10 گنا کم لوہے کی ضرورت ہوتی ہے۔

ый کھلا ماخذ. آپ کو کسی بھی چیز کی ادائیگی نہیں کرنی ہوگی۔ آپ کے لیپ ٹاپ یا سرور پر سسٹم کو انسٹال کرنے کے لیے اجازت لینے کی ضرورت نہیں ہے۔ کوئی پوشیدہ فیس نہیں۔ ایک ہی وقت میں، کوئی دوسری اوپن سورس ڈیٹا بیس ٹیکنالوجی رفتار میں مقابلہ نہیں کر سکتی کلک ہاؤس. مائی ایس کیو ایل، ماریا ڈی بی، گرین پلم - وہ سب بہت سست ہیں۔

کمیونٹی، ڈرائیو اور مزہ. کیا ہے کلک ہاؤس بہترین کمیونٹی: ملاقاتیں، چیٹس اور الیکسی میلووڈوف، جو ہم سب کو اپنی توانائی اور پر امید ہیں۔

کلک ہاؤس میں منتقل ہونا

پر جانے کے لئے کلک ہاؤس کسی وجہ سے، آپ کو صرف تین چیزوں کی ضرورت ہے:

  • حدود کو سمجھیں۔ کلک ہاؤس اور جو اس کے لیے موزوں نہیں ہے۔
  • فائدہ اٹھاو ٹیکنالوجی اور اس کی سب سے بڑی طاقت۔
  • تجربہ. یہاں تک کہ یہ سمجھنا کہ یہ کیسے کام کرتا ہے۔ کلک ہاؤس، یہ پیش گوئی کرنا ہمیشہ ممکن نہیں ہے کہ یہ کب تیز ہوگا، کب سست ہوگا، کب بہتر ہوگا، اور کب بدتر ہوگا۔ تو اس کی کوشش کریں.

حرکت پذیری کا مسئلہ

صرف ایک "لیکن" ہے: اگر آپ اس کی طرف جاتے ہیں۔ کلک ہاؤس کسی اور چیز سے، پھر عام طور پر کچھ غلط ہو جاتا ہے۔ ہم کچھ طریقوں اور چیزوں کے عادی ہیں جو ہمارے پسندیدہ ڈیٹا بیس میں کام کرتے ہیں۔ مثال کے طور پر، کوئی بھی جس کے ساتھ کام کر رہا ہے۔ SQL-databases مندرجہ ذیل افعال کے سیٹ کو لازمی سمجھتے ہیں:

  • لین دین
  • رکاوٹوں؛
  • مستقل مزاجی؛
  • انڈیکس
  • اپ ڈیٹ/ڈیلیٹ کریں۔;
  • NULLs;
  • ملی سیکنڈ؛
  • خودکار قسم کاسٹ؛
  • متعدد جوڑ؛
  • من مانی تقسیم؛
  • کلسٹر مینجمنٹ ٹولز۔

بھرتی لازمی ہے، لیکن تین سال پہلے میں کلک ہاؤس ان افعال میں سے کوئی بھی دستیاب نہیں تھا! اب جو لاگو نہیں کیا گیا ہے اس میں سے نصف سے بھی کم رہ گیا ہے: لین دین، رکاوٹیں، مستقل مزاجی، ملی سیکنڈز اور ٹائپ کاسٹنگ۔

اور اہم بات یہ ہے کہ اندر کلک ہاؤس کچھ معیاری طرز عمل اور طریقہ کار ہماری عادت سے مختلف کام نہیں کرتے یا کام نہیں کرتے۔ ہر وہ چیز جو اس میں نظر آتی ہے۔ کلک ہاؤسکے مساوی ہے "گھر کے راستے پر کلک کریں۔"، یعنی افعال دوسرے ڈیٹا بیس سے مختلف ہیں۔ مثال کے طور پر:

  • اشاریہ جات کو منتخب نہیں کیا گیا ہے، لیکن چھوڑ دیا گیا ہے۔
  • اپ ڈیٹ/ڈیلیٹ کریں۔ ہم وقت ساز نہیں، لیکن متضاد۔
  • متعدد جوائنز ہیں، لیکن کوئی استفسار پلانر نہیں ہے۔ اس کے بعد وہ کیسے انجام پاتے ہیں عام طور پر ڈیٹا بیس کی دنیا کے لوگوں کے لیے زیادہ واضح نہیں ہوتا ہے۔

ہاؤس اسکرپٹ پر کلک کریں۔

1960 میں، ہنگری نژاد امریکی ریاضی دان وگنر ای پی ایک مضمون لکھا "فطری علوم میں ریاضی کی غیر معقول تاثیر("قدرتی سائنسز میں ریاضی کی ناقابل فہم تاثیر") کہ ہمارے ارد گرد کی دنیا کسی نہ کسی وجہ سے ریاضی کے قوانین کے ذریعے اچھی طرح بیان کی گئی ہے۔ ریاضی ایک تجریدی سائنس ہے، اور ریاضی کی شکل میں ظاہر ہونے والے جسمانی قوانین معمولی نہیں ہیں، اور وگنر ای پی زور دیا کہ یہ بہت عجیب ہے.

میرے نقطہ نظر سے، کلک ہاؤس - ایک ہی عجیب Wigner کو دوبارہ بیان کرنے کے لیے، ہم یہ کہہ سکتے ہیں: ناقابل فہم کارکردگی حیران کن ہے۔ کلک ہاؤس تجزیاتی ایپلی کیشنز کی وسیع اقسام میں!

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

مثال کے طور پر لیتے ہیں۔ ریئل ٹائم ڈیٹا گودامجس میں ڈیٹا تقریباً مسلسل لوڈ ہوتا رہتا ہے۔ ہم دوسری تاخیر کے ساتھ اس سے درخواستیں وصول کرنا چاہتے ہیں۔ براہ کرم - اسے استعمال کریں۔ کلک ہاؤسکیونکہ یہ وہ منظر نامہ ہے جس کے لیے اسے ڈیزائن کیا گیا تھا۔ کلک ہاؤس بالکل اسی طرح اس کا استعمال نہ صرف ویب پر ہوتا ہے بلکہ مارکیٹنگ اور مالیاتی تجزیات میں بھی ہوتا ہے، AdTech، کے ساتھ ساتھ میں فراڈ کا پتہ لگاناn. میں ریئل ٹائم ڈیٹا گودام ایک پیچیدہ ساختی اسکیم جیسے "ستارہ" یا "سنو فلیک" استعمال کیا جاتا ہے، جس میں بہت سی میزیں ہیں۔ شمولیت (بعض اوقات متعدد)، اور ڈیٹا کو عام طور پر کچھ سسٹمز میں محفوظ اور تبدیل کیا جاتا ہے۔

آئیے ایک اور منظر نامے کو لیتے ہیں - وقت کا سلسلہ: آلات کی نگرانی، نیٹ ورکس، استعمال کے اعدادوشمار، چیزوں کا انٹرنیٹ۔ یہاں ہم وقت پر ترتیب دیے گئے کافی آسان واقعات کا سامنا کرتے ہیں۔ کلک ہاؤس اصل میں اس کے لئے تیار نہیں کیا گیا تھا، لیکن خود کو اچھی طرح سے کام کرنے کے لئے دکھایا گیا ہے، یہی وجہ ہے کہ بڑی کمپنیاں استعمال کرتی ہیں کلک ہاؤس معلومات کی نگرانی کے لیے ایک ذخیرہ کے طور پر۔ یہ دریافت کرنے کے لیے کہ آیا یہ موزوں ہے۔ کلک ہاؤس ٹائم سیریز کے لیے، ہم نے نقطہ نظر اور نتائج کی بنیاد پر ایک بینچ مارک بنایا انفلوکس ڈی بی и ٹائم اسکیلڈی بی - خصوصی وقت کا سلسلہ ڈیٹا بیس یہ نکلا۔کہ کلک ہاؤسیہاں تک کہ اس طرح کے کاموں کی اصلاح کے بغیر، غیر ملکی میدان میں جیت جاتا ہے:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

В وقت کا سلسلہ عام طور پر ایک تنگ میز استعمال کیا جاتا ہے - کئی چھوٹے کالم. بہت سارے ڈیٹا مانیٹرنگ سے آسکتے ہیں — لاکھوں ریکارڈ فی سیکنڈ — اور وہ عام طور پر چھوٹے پھٹوں میں آتے ہیں (اصل وقت سلسلہ بندی)۔ لہذا، ایک مختلف اندراج اسکرپٹ کی ضرورت ہے، اور سوالات کی خود اپنی خصوصیات ہیں۔

لاگ ان مینجمنٹ. ڈیٹا بیس میں لاگز جمع کرنا عام طور پر برا ہوتا ہے، لیکن کلک ہاؤس یہ کچھ تبصروں کے ساتھ کیا جا سکتا ہے جیسا کہ اوپر بیان کیا گیا ہے۔ بہت سی کمپنیاں استعمال کرتی ہیں۔ کلک ہاؤس بالکل اس مقصد کے لیے۔ اس صورت میں، ہم ایک فلیٹ چوڑی میز کا استعمال کرتے ہیں جہاں ہم پورے لاگز کو محفوظ کرتے ہیں (مثال کے طور پر، فارم میں JSON)، یا ٹکڑوں میں کاٹ دیں۔ ڈیٹا عام طور پر بڑے بیچوں (فائلوں) میں لوڈ ہوتا ہے، اور ہم کسی نہ کسی فیلڈ سے تلاش کرتے ہیں۔

ان افعال میں سے ہر ایک کے لیے، خصوصی ڈیٹا بیس عام طور پر استعمال کیے جاتے ہیں۔ کلک ہاؤس کوئی بھی یہ سب کر سکتا ہے اور اتنی اچھی طرح سے کہ یہ ان سے بہتر ہے۔ آئیے اب قریب سے دیکھیں وقت کا سلسلہ منظر نامے، اور صحیح طریقے سے "پکانے" کا طریقہ کلک ہاؤس اس منظر نامے کے لیے۔

وقت کا سلسلہ

فی الحال یہ اہم منظر نامہ ہے جس کے لیے کلک ہاؤس معیاری حل سمجھا جاتا ہے۔ وقت کا سلسلہ وقت کے ساتھ ترتیب دیئے گئے واقعات کا ایک مجموعہ ہے، جو وقت کے ساتھ کچھ عمل میں ہونے والی تبدیلیوں کی نمائندگی کرتا ہے۔ مثال کے طور پر، یہ فی دن دل کی دھڑکن یا نظام میں عمل کی تعداد ہو سکتی ہے۔ ہر وہ چیز جو وقت کو کچھ جہتوں کے ساتھ ٹکس دیتی ہے۔ وقت کا سلسلہ:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

اس قسم کے زیادہ تر واقعات نگرانی سے آتے ہیں۔ یہ نہ صرف ویب کی نگرانی کر سکتا ہے بلکہ حقیقی آلات: کاریں، صنعتی نظام، IOT, فیکٹریوں یا بغیر پائلٹ ٹیکسیاں، جس کے ٹرنک میں Yandex پہلے سے ہی ڈال رہا ہے کلک ہاؤس-سرور

مثال کے طور پر، ایسی کمپنیاں ہیں جو جہازوں سے ڈیٹا اکٹھا کرتی ہیں۔ ہر چند سیکنڈ میں، کنٹینر جہاز پر موجود سینسر سینکڑوں مختلف پیمائشیں بھیجتے ہیں۔ انجینئرز ان کا مطالعہ کرتے ہیں، ماڈل بناتے ہیں اور یہ سمجھنے کی کوشش کرتے ہیں کہ جہاز کو کس قدر موثر طریقے سے استعمال کیا جاتا ہے، کیونکہ ایک کنٹینر جہاز ایک سیکنڈ کے لیے بھی بیکار نہیں ہونا چاہیے۔ کسی بھی وقت کی کمی پیسے کا نقصان ہے، اس لیے راستے کی پیشین گوئی کرنا ضروری ہے تاکہ رکنے کم سے کم ہوں۔

آج کل خاص ڈیٹا بیس کی ترقی ہے جو پیمائش کرتے ہیں۔ وقت کا سلسلہ. جگہ پر ڈی بی انجن مختلف ڈیٹا بیسز کو کسی نہ کسی طرح درجہ دیا جاتا ہے، اور آپ انہیں قسم کے لحاظ سے دیکھ سکتے ہیں:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

سب سے تیزی سے بڑھتی ہوئی قسم ہے وقت کا سلسلہs گراف ڈیٹا بیس بھی بڑھ رہے ہیں، لیکن وقت کا سلسلہs پچھلے کچھ سالوں میں تیزی سے بڑھ رہا ہے۔ ڈیٹا بیس کے اس خاندان کے عام نمائندے ہیں۔ انفلوکس ڈی بی, Prometheus, KDB, ٹائم اسکیلڈی بی (پر بنایا گیا PostgreSQL کی) سے حل ایمیزون. کلک ہاؤس یہاں بھی استعمال کیا جا سکتا ہے، اور استعمال کیا جاتا ہے۔ میں آپ کو چند عوامی مثالیں دیتا ہوں۔

سرخیلوں میں سے ایک کمپنی ہے۔ CloudFlare کے (CDNفراہم کنندہ)۔ وہ ان کی نگرانی کرتے ہیں۔ CDN کے ذریعے کلک ہاؤس (DNS- درخواستیں، HTTP- سوالات) بہت زیادہ بوجھ کے ساتھ - فی سیکنڈ 6 ملین واقعات۔ سب کچھ گزر جاتا ہے۔ Kafka، کو جاتا ہے کلک ہاؤس، جو نظام میں واقعات کے ڈیش بورڈز کو حقیقی وقت میں دیکھنے کا موقع فراہم کرتا ہے۔

رکن کی نمائندہ تصویر - امریکہ میں ٹیلی کمیونیکیشن کے رہنماؤں میں سے ایک: انٹرنیٹ، ڈیجیٹل ٹیلی ویژن، ٹیلی فونی۔ انہوں نے اسی طرح کا کنٹرول سسٹم بنایا CDN فریم ورک کے اندر کھلا ماخذ پروجیکٹ اپاچی ٹریفک کنٹرول اپنے بڑے ڈیٹا کے ساتھ کام کرنے کے لیے۔ کلک ہاؤس تجزیات کے لیے بیک اینڈ کے طور پر استعمال کیا جاتا ہے۔

پرکونا میں تعمیر کلک ہاؤس آپ کے اندر پی ایم ایممختلف کی نگرانی کو ذخیرہ کرنے کے لئے MySQL.

مخصوص تقاضے

ٹائم سیریز ڈیٹا بیس کی اپنی مخصوص ضروریات ہیں۔

  • بہت سے ایجنٹوں سے تیزی سے اندراج. ہمیں بہت سے اسٹریمز سے ڈیٹا بہت تیزی سے داخل کرنا پڑتا ہے۔ کلک ہاؤس یہ یہ اچھی طرح کرتا ہے کیونکہ اس کے تمام داخلے غیر مسدود ہیں۔ کوئی بھی داخل ڈسک پر ایک نئی فائل ہے، اور چھوٹے داخلوں کو کسی نہ کسی طریقے سے بفر کیا جا سکتا ہے۔ میں کلک ہاؤس ایک وقت میں ایک لائن کے بجائے بڑے بیچوں میں ڈیٹا ڈالنا بہتر ہے۔
  • لچکدار اسکیم. میں وقت کا سلسلہ ہم عام طور پر ڈیٹا کی ساخت کو مکمل طور پر نہیں جانتے ہیں۔ کسی مخصوص ایپلی کیشن کے لیے مانیٹرنگ سسٹم بنانا ممکن ہے، لیکن پھر اسے دوسری ایپلی کیشن کے لیے استعمال کرنا مشکل ہے۔ اس کے لیے زیادہ لچکدار اسکیم کی ضرورت ہے۔ کلک ہاؤس, آپ کو ایسا کرنے کی اجازت دیتا ہے، حالانکہ یہ مضبوطی سے ٹائپ شدہ بنیاد ہے۔
  • موثر اسٹوریج اور ڈیٹا کو بھول جانا. عام طور پر میں وقت کا سلسلہ ڈیٹا کی ایک بڑی مقدار، لہذا اسے ہر ممکن حد تک مؤثر طریقے سے ذخیرہ کیا جانا چاہئے. مثال کے طور پر، at انفلوکس ڈی بی اچھا کمپریشن اس کی اہم خصوصیت ہے. لیکن ذخیرہ کرنے کے علاوہ، آپ کو پرانے ڈیٹا کو "بھولنے" اور کسی قسم کا کام کرنے کے قابل ہونے کی بھی ضرورت ہے۔ کم نمونہ - مجموعوں کی خودکار گنتی۔
  • مجموعی ڈیٹا پر تیز سوالات. بعض اوقات آخری 5 منٹ کو ملی سیکنڈ کی درستگی کے ساتھ دیکھنا دلچسپ ہوتا ہے، لیکن ماہانہ ڈیٹا منٹ یا سیکنڈ گرینولریٹی کی ضرورت نہیں ہو سکتی ہے - عام اعداد و شمار کافی ہیں۔ اس قسم کا تعاون ضروری ہے، بصورت دیگر 3 ماہ کی درخواست کو مکمل ہونے میں کافی وقت لگے گا۔ کلک ہاؤس.
  • درخواستیں جیسے "آخری نقطہ، کے طور پر». یہ اس کے لیے عام ہیں۔ وقت کا سلسلہ سوالات: وقت کے ایک لمحے میں نظام کی آخری پیمائش یا حالت کو دیکھیں t. یہ ڈیٹا بیس کے لیے بہت خوشگوار سوالات نہیں ہیں، لیکن آپ کو ان کو انجام دینے کے قابل ہونا بھی ضروری ہے۔
  • "گلونگ" ٹائم سیریز. وقت کا سلسلہ ایک ٹائم سیریز ہے. اگر دو وقت کی سیریز ہیں، تو انہیں اکثر مربوط اور باہم مربوط ہونے کی ضرورت ہوتی ہے۔ تمام ڈیٹا بیس پر ایسا کرنا آسان نہیں ہے، خاص طور پر غیر منسلک ٹائم سیریز کے ساتھ: یہاں کچھ ٹائم پوائنٹس ہیں، اور بھی ہیں۔ آپ اوسط پر غور کر سکتے ہیں، لیکن اچانک وہاں اب بھی ایک سوراخ ہو جائے گا، لہذا یہ واضح نہیں ہے۔

آئیے دیکھتے ہیں کہ ان تقاضوں کو کس طرح پورا کیا جاتا ہے۔ کلک ہاؤس.

ڈرائیونگ

В کلک ہاؤس کے لئے سکیم وقت کا سلسلہ اعداد و شمار کی باقاعدگی کی ڈگری پر منحصر ہے، مختلف طریقوں سے کیا جا سکتا ہے. باقاعدہ ڈیٹا پر ایک نظام بنانا ممکن ہے جب ہم تمام میٹرکس کو پہلے سے جانتے ہوں۔ مثال کے طور پر، میں نے یہ کیا CloudFlare کے نگرانی کے ساتھ CDN ایک اچھی طرح سے بہتر نظام ہے. آپ ایک زیادہ عام نظام بنا سکتے ہیں جو پورے بنیادی ڈھانچے اور مختلف خدمات کی نگرانی کرتا ہے۔ فاسد ڈیٹا کی صورت میں، ہم پہلے سے نہیں جانتے کہ ہم کس چیز کی نگرانی کر رہے ہیں - اور یہ شاید سب سے عام معاملہ ہے۔

باقاعدہ ڈیٹا۔ کالم۔ اسکیم سادہ ہے - مطلوبہ اقسام کے ساتھ کالم:

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);

یہ ایک باقاعدہ ٹیبل ہے جو کسی قسم کی سسٹم لوڈنگ سرگرمی پر نظر رکھتا ہے (صارف, کے نظام, بیکار, اچھا)۔ سادہ اور آسان، لیکن لچکدار نہیں۔ اگر ہم زیادہ لچکدار اسکیم چاہتے ہیں، تو ہم arrays استعمال کرسکتے ہیں۔

بے ترتیب ڈیٹا۔ صفیں:

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 ...

ساخت گھریلو دو صفیں ہیں: metrics.name и metrics.value. یہاں آپ اس طرح کے صوابدیدی مانیٹرنگ ڈیٹا کو ہر ایونٹ کے لیے ناموں کی ایک صف اور پیمائش کی ایک صف کے طور پر محفوظ کر سکتے ہیں۔ مزید اصلاح کے لیے، اس طرح کے ایک ڈھانچے کے بجائے، آپ کئی بنا سکتے ہیں۔ مثال کے طور پر، ایک کے لیے تيرے- قدر، ایک اور - کے لئے int- مطلب کیونکہ int میں زیادہ مؤثر طریقے سے ذخیرہ کرنا چاہتا ہوں۔

لیکن اس طرح کے ڈھانچے تک رسائی حاصل کرنا زیادہ مشکل ہے۔ آپ کو پہلے انڈیکس اور پھر صف کی قدروں کو نکالنے کے لیے خصوصی فنکشنز کا استعمال کرتے ہوئے ایک خاص تعمیر کا استعمال کرنا پڑے گا:

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

لیکن یہ اب بھی کافی تیزی سے کام کرتا ہے۔ فاسد ڈیٹا کو ذخیرہ کرنے کا دوسرا طریقہ قطار کے ذریعے ہے۔

بے ترتیب ڈیٹا۔ ڈور. اس روایتی طریقے میں بغیر صفوں کے نام اور قدریں بیک وقت محفوظ کی جاتی ہیں۔ اگر 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. مثال کے طور پر زیادہ سے زیادہ اگر - ایک خاص فنکشن جو میٹرک کے ذریعہ زیادہ سے زیادہ کا حساب لگاتا ہے جب کچھ شرط پوری ہوتی ہے۔ آپ ایک درخواست میں اس طرح کے متعدد اظہارات لکھ سکتے ہیں اور فوری طور پر متعدد میٹرکس کی قدر کا حساب لگا سکتے ہیں۔

آئیے تین طریقوں کا موازنہ کریں:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

تفصیلات

یہاں میں نے کچھ ٹیسٹ ڈیٹا سیٹ کے لیے "Disk Data Size" شامل کیا ہے۔ کالموں کے معاملے میں، ہمارے پاس ڈیٹا کا سائز سب سے چھوٹا ہے: زیادہ سے زیادہ کمپریشن، زیادہ سے زیادہ استفسار کی رفتار، لیکن ہم سب کچھ ایک ساتھ ریکارڈ کرنے سے ادائیگی کرتے ہیں۔

arrays کے معاملے میں، سب کچھ تھوڑا خراب ہے. ڈیٹا اب بھی اچھی طرح کمپریسڈ ہے اور ایک فاسد پیٹرن کو اسٹور کیا جاسکتا ہے۔ لیکن کلک ہاؤس - ایک کالم ڈیٹا بیس، اور جب ہم ہر چیز کو ایک صف میں ذخیرہ کرنا شروع کرتے ہیں، تو یہ ایک قطار میں بدل جاتا ہے، اور ہم لچک کے ساتھ کارکردگی کی ادائیگی کرتے ہیں۔ کسی بھی آپریشن کے لیے، آپ کو پوری صف کو میموری میں پڑھنا پڑے گا، پھر اس میں مطلوبہ عنصر تلاش کریں - اور اگر صف بڑھتی ہے، تو رفتار کم ہو جاتی ہے۔

ان کمپنیوں میں سے ایک میں جو اس نقطہ نظر کو استعمال کرتی ہے (مثال کے طور پر، Uber)، صفوں کو 128 عناصر کے ٹکڑوں میں کاٹا جاتا ہے۔ 200 TB ڈیٹا/دن کے حجم کے ساتھ کئی ہزار میٹرکس کا ڈیٹا ایک صف میں نہیں، بلکہ خصوصی اسٹوریج منطق کے ساتھ 10 یا 30 صفوں میں محفوظ کیا جاتا ہے۔

سب سے آسان طریقہ تاروں کے ساتھ ہے۔ لیکن ڈیٹا ناقص کمپریسڈ ہے، ٹیبل کا سائز بڑا ہے، اور یہاں تک کہ جب سوالات کئی میٹرکس پر مبنی ہوتے ہیں، کلک ہاؤس بہتر طریقے سے کام نہیں کرتا ہے۔

ہائبرڈ اسکیم

آئیے فرض کریں کہ ہم نے ایک سرکٹ کا انتخاب کیا ہے۔ لیکن اگر ہم جانتے ہیں کہ ہمارے زیادہ تر ڈیش بورڈز صرف صارف اور سسٹم میٹرکس دکھاتے ہیں، تو ہم اضافی طور پر ان میٹرکس کو ٹیبل کی سطح پر ایک صف سے کالموں میں اس طرح بنا سکتے ہیں:

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);

داخل کرتے وقت کلک ہاؤس خود بخود ان کو شمار کرے گا. اس طرح آپ کاروبار کو خوشی کے ساتھ جوڑ سکتے ہیں: اسکیم لچکدار اور عام ہے، لیکن ہم نے اکثر استعمال ہونے والے کالم نکالے ہیں۔ نوٹ کریں کہ اس کے لیے داخل کو تبدیل کرنے کی ضرورت نہیں تھی۔ ای ٹی ایلجو ٹیبل میں صفوں کو داخل کرتا رہتا ہے۔ ہم نے صرف کیا مندرجہ ذیل جدول, سپیکر کے ایک جوڑے کو شامل کیا اور ہمیں ایک ہائبرڈ اور تیز اسکیم ملی جسے آپ ابھی استعمال کرنا شروع کر سکتے ہیں۔

کوڈیکس اور کمپریشن

کے لیے وقت کا سلسلہ اس سے فرق پڑتا ہے کہ آپ ڈیٹا کو کتنی اچھی طرح پیک کرتے ہیں کیونکہ معلومات کی مقدار بہت زیادہ ہو سکتی ہے۔ میں کلک ہاؤس 1:10، 1:20، اور بعض اوقات اس سے زیادہ کے کمپریشن اثر حاصل کرنے کے لیے ٹولز کا ایک سیٹ موجود ہے۔ اس کا مطلب ہے کہ ڈسک پر 1 TB غیر پیک شدہ ڈیٹا 50-100 GB تک لیتا ہے۔ چھوٹا سائز اچھا ہے، ڈیٹا کو تیزی سے پڑھا اور پروسیس کیا جا سکتا ہے۔

کمپریشن کی اعلی سطح حاصل کرنے کے لئے، کلک ہاؤس درج ذیل کوڈیکس کی حمایت کرتا ہے:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

مثال کی میز:

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);

یہاں ہم کوڈیک کی وضاحت کرتے ہیں۔ ڈبل ڈیلٹا ایک صورت میں، دوسرے میں - اوپر، اور ہم یقینی طور پر مزید اضافہ کریں گے۔ LZ4 کمپریشن نتیجے کے طور پر، ڈسک پر ڈیٹا کا سائز بہت کم ہو گیا ہے:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

یہ ظاہر کرتا ہے کہ ایک ہی ڈیٹا کتنی جگہ لیتا ہے، لیکن مختلف کوڈیکس اور کمپریشنز کا استعمال کرتے ہوئے:

  • ڈسک پر GZIP فائل میں؛
  • کلک ہاؤس میں بغیر کوڈیکس کے، لیکن ZSTD کمپریشن کے ساتھ؛
  • کلک ہاؤس میں کوڈیکس اور کمپریشن LZ4 اور ZSTD کے ساتھ۔

یہ دیکھا جا سکتا ہے کہ کوڈیکس والی میزیں بہت کم جگہ لیتی ہیں۔

سائز معاملات

کم اہم نہیں۔ منتخب کریں درست ڈیٹا کی قسم:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

اوپر کی تمام مثالوں میں میں نے استعمال کیا۔ فلوٹ 64. لیکن اگر ہم نے انتخاب کیا۔ فلوٹ 32، پھر یہ اور بھی بہتر ہوگا۔ اوپر سے منسلک مضمون میں پرکونا کے لڑکوں نے اس کا خوب مظاہرہ کیا۔ سب سے زیادہ کمپیکٹ قسم کا استعمال کرنا ضروری ہے جو کام کے لیے موزوں ہو: ڈسک کے سائز کے لیے استفسار کی رفتار سے بھی کم۔ کلک ہاؤس اس کے لئے بہت حساس ہے.

اگر آپ استعمال کر سکتے ہیں۔ انٹیکس اینمیکس کے بجائے انٹیکس اینمیکس، پھر کارکردگی میں تقریبا دوگنا اضافے کی توقع ہے۔ ڈیٹا کم میموری لیتا ہے، اور تمام "ریاضی" بہت تیزی سے کام کرتا ہے۔ کلک ہاؤس اندرونی طور پر یہ ایک انتہائی سختی سے ٹائپ شدہ نظام ہے؛ یہ جدید نظام فراہم کرنے والے تمام امکانات کا زیادہ سے زیادہ استعمال کرتا ہے۔

جمع اور مادی نظارے

جمع اور مادی خیالات آپ کو مختلف مواقع کے لیے مجموعے بنانے کی اجازت دیتے ہیں:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

مثال کے طور پر، آپ کے پاس غیر جمع شدہ ماخذ ڈیٹا ہو سکتا ہے، اور آپ ایک خاص انجن کے ذریعے خودکار سمیشن کے ساتھ ان کے ساتھ مختلف مادی نظریات منسلک کر سکتے ہیں۔ SummingMergeTree (SMT). شریمتی ایک خاص جمع کرنے والا ڈیٹا ڈھانچہ ہے جو خود بخود ایگریگیٹس کا حساب لگاتا ہے۔ ڈیٹا بیس میں خام ڈیٹا ڈالا جاتا ہے، یہ خود بخود جمع ہوجاتا ہے، اور اس پر فوری طور پر ڈیش بورڈ استعمال کیے جاسکتے ہیں۔

TTL - پرانا ڈیٹا "بھول جائیں"

ڈیٹا کو "بھولنے" کا طریقہ جس کی اب ضرورت نہیں ہے؟ کلک ہاؤس جانتا ہے کہ یہ کیسے کرنا ہے. میزیں بناتے وقت، آپ وضاحت کر سکتے ہیں۔ 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 */

کثیر درجے کا - ڈسکوں میں ڈیٹا تقسیم کریں۔

اس خیال کو آگے لے کر، ڈیٹا کو ذخیرہ کیا جا سکتا ہے۔ کلک ہاؤس مختلف جگہوں پر. فرض کریں کہ ہم پچھلے ہفتے کے لیے گرم ڈیٹا کو بہت تیز لوکل پر اسٹور کرنا چاہتے ہیں۔ ایس ایس ڈی، اور ہم مزید تاریخی ڈیٹا کو دوسری جگہ پر رکھتے ہیں۔ میں کلک ہاؤس یہ اب ممکن ہے:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

آپ اسٹوریج کی پالیسی تشکیل دے سکتے ہیں (ذخیرہ کرنے کی پالیسی)تو کلک ہاؤس کچھ شرائط تک پہنچنے پر ڈیٹا کو خود بخود دوسرے اسٹوریج میں منتقل کر دے گا۔

لیکن یہ سب کچھ نہیں ہے۔ ایک مخصوص جدول کی سطح پر، آپ اس کے لیے قواعد کی وضاحت کر سکتے ہیں جب ڈیٹا کولڈ اسٹوریج میں جاتا ہے۔ مثال کے طور پر، ڈیٹا 7 دنوں کے لیے ایک بہت تیز ڈسک پر محفوظ کیا جاتا ہے، اور ہر چیز جو پرانی ہوتی ہے اسے سست رفتار میں منتقل کیا جاتا ہے۔ یہ اچھا ہے کیونکہ یہ آپ کو نظام کو زیادہ سے زیادہ کارکردگی پر رکھنے کی اجازت دیتا ہے، جبکہ اخراجات کو کنٹرول کرتے ہوئے اور کولڈ ڈیٹا پر پیسہ ضائع نہیں کرتے:

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

منفرد خصوصیات کلک ہاؤس

تقریباً ہر چیز میں کلک ہاؤس اس طرح کی "جھلکیاں" ہیں، لیکن وہ خصوصیت کے ذریعہ آفسیٹ ہیں - ایسی چیز جو دوسرے ڈیٹا بیس میں نہیں ہے۔ مثال کے طور پر، یہاں کچھ منفرد خصوصیات ہیں کلک ہاؤس:

  • صفیں. میں کلک ہاؤس صفوں کے لیے بہت اچھا تعاون، نیز ان پر پیچیدہ حساب کتاب کرنے کی صلاحیت۔
  • ڈیٹا کے ڈھانچے کو جمع کرنا. یہ "قاتل خصوصیات" میں سے ایک ہے کلک ہاؤس. اس حقیقت کے باوجود کہ Yandex کے لڑکوں کا کہنا ہے کہ ہم ڈیٹا کو جمع نہیں کرنا چاہتے، سب کچھ اس میں جمع ہے کلک ہاؤسکیونکہ یہ تیز اور آسان ہے۔
  • مٹیریلائزڈ ویوز. اعداد و شمار کے ڈھانچے کو جمع کرنے کے ساتھ ساتھ، مادّی بنائے گئے نظارے آپ کو آسان بنانے کی اجازت دیتے ہیں۔ اصل وقت جمع
  • ہاؤس ایس کیو ایل پر کلک کریں۔. یہ زبان کی توسیع ہے۔ SQL کچھ اضافی اور خصوصی خصوصیات کے ساتھ جو صرف میں دستیاب ہیں۔ کلک ہاؤس. پہلے، یہ ایک طرف توسیع کی طرح تھا، اور دوسری طرف ایک نقصان۔ اب تقریبا تمام نقصانات کے مقابلے میں ایس کیو ایل 92 ہم نے اسے ہٹا دیا، اب یہ صرف ایک توسیع ہے۔
  • لامڈا- تاثرات. کیا وہ اب بھی کسی ڈیٹا بیس میں ہیں؟
  • ML-سپورٹ. یہ مختلف ڈیٹا بیس میں دستیاب ہے، کچھ بہتر ہیں، کچھ بدتر ہیں۔
  • آزاد مصدر. ہم توسیع کر سکتے ہیں۔ کلک ہاؤس ایک ساتھ اب میں کلک ہاؤس تقریباً 500 شراکت دار، اور یہ تعداد مسلسل بڑھ رہی ہے۔

مشکل سوالات

В کلک ہاؤس ایک ہی کام کرنے کے بہت سے مختلف طریقے ہیں۔ مثال کے طور پر، آپ ٹیبل سے آخری قدر کو تین مختلف طریقوں سے واپس کر سکتے ہیں۔ CPU (ایک چوتھا بھی ہے، لیکن یہ اس سے بھی زیادہ غیر ملکی ہے)۔

پہلا دکھاتا ہے کہ اس میں کرنا کتنا آسان ہے۔ کلک ہاؤس سوالات جب آپ اسے چیک کرنا چاہتے ہیں۔ ٹپل ذیلی استفسار میں شامل ہے۔ یہ وہ چیز ہے جسے میں نے ذاتی طور پر دوسرے ڈیٹا بیس میں یاد کیا۔ اگر میں کسی چیز کا ذیلی سوال سے موازنہ کرنا چاہتا ہوں، تو دوسرے ڈیٹا بیس میں اس کے ساتھ صرف ایک اسکیلر کا موازنہ کیا جا سکتا ہے، لیکن کئی کالموں کے لیے مجھے لکھنا پڑتا ہے۔ شمولیت. میں کلک ہاؤس آپ 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 

В کلک ہاؤس یہاں کئی درجن مجموعی افعال ہیں، اور اگر آپ combinators استعمال کرتے ہیں، تو combinatorics کے قوانین کے مطابق آپ کو ان میں سے تقریباً ایک ہزار ملیں گے۔ ArgMax - ان افعال میں سے ایک جو زیادہ سے زیادہ قدر کا حساب لگاتا ہے: درخواست قدر واپس کرتی ہے۔ use_user، جس پر زیادہ سے زیادہ قدر پہنچ گئی ہے۔ create_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 جوائن کریں۔ - مختلف اوقات کے ساتھ "گلونگ" قطاریں۔ یہ ڈیٹا بیس کے لیے ایک منفرد خصوصیت ہے جو صرف میں دستیاب ہے۔ kdb+. اگر مختلف اوقات کے ساتھ دو ٹائم سیریز ہیں، ASOF جوائن کریں۔ آپ کو انہیں ایک درخواست میں منتقل کرنے اور ضم کرنے کی اجازت دیتا ہے۔ ایک وقت کی سیریز میں ہر قدر کے لیے، دوسری میں قریب ترین قدر پائی جاتی ہے، اور وہ ایک ہی لائن پر لوٹائی جاتی ہیں:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

تجزیاتی افعال۔

معیار میں 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 اور شاید یہ کبھی نہیں کریں گے. اس کے بجائے، میں کلک ہاؤس اس طرح لکھنے کا رواج ہے:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

میں نے لیمبڈاس سے وعدہ کیا تھا - وہ یہاں ہیں!

یہ معیار میں تجزیاتی استفسار کا ایک ینالاگ ہے۔ SQL-2003: وہ دونوں کے درمیان فرق کو شمار کرتا ہے۔ ٹائم اسٹیمپ، مدت, ordinal number - ہر وہ چیز جسے ہم عام طور پر تجزیاتی افعال پر غور کرتے ہیں۔ میں کلک ہاؤس ہم ان کو arrays کے ذریعے شمار کرتے ہیں: پہلے ہم ڈیٹا کو ایک صف میں سمیٹتے ہیں، اس کے بعد ہم وہ سب کچھ کرتے ہیں جو ہم ارے پر چاہتے ہیں، اور پھر ہم اسے دوبارہ پھیلاتے ہیں۔ یہ بہت آسان نہیں ہے، اس کے لیے کم از کم فنکشنل پروگرامنگ کی محبت کی ضرورت ہوتی ہے، لیکن یہ بہت لچکدار ہے۔

خصوصی کام

اس کے علاوہ، میں کلک ہاؤس بہت سے خصوصی افعال. مثال کے طور پر، یہ کیسے طے کیا جائے کہ بیک وقت کتنے سیشن ہو رہے ہیں؟ ایک عام نگرانی کا کام ایک درخواست کے ساتھ زیادہ سے زیادہ بوجھ کا تعین کرنا ہے۔ میں کلک ہاؤس اس مقصد کے لئے ایک خاص فنکشن ہے:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

عام طور پر، ClickHouse بہت سے مقاصد کے لیے خصوصی کام کرتا ہے:

  • چل رہا ہے فرق، چل رہا ہے جمع کرنا، پڑوسی؛
  • sumMap (کلید، قدر)؛
  • timeSeriesGroupSum(uid، ٹائم اسٹیمپ، ویلیو)؛
  • timeSeriesGroupRateSum(uid، ٹائم اسٹیمپ، ویلیو)؛
  • skewPop، skewSamp، kurtPop، kurtSamp؛
  • بھرنے کے ساتھ / ٹائیوں کے ساتھ؛
  • سادہ لکیری ریگریشن، اسٹاکسٹک لکیری ریگریشن۔

یہ فنکشنز کی مکمل فہرست نہیں ہے، کل 500-600 ہیں۔ اشارہ: تمام افعال میں کلک ہاؤس سسٹم ٹیبل میں ہے (سب دستاویزی نہیں ہیں، لیکن سب دلچسپ ہیں):

select * from system.functions order by name

کلک ہاؤس یہ اپنے بارے میں بہت سی معلومات ذخیرہ کرتا ہے، بشمول لاگ میزیں, query_log، ٹریس لاگ، ڈیٹا بلاکس کے ساتھ آپریشنز کا لاگ (part_log)، میٹرکس لاگ، اور سسٹم لاگ، جسے یہ عام طور پر ڈسک پر لکھتا ہے۔ لاگ میٹرکس ہے۔ وقت کا سلسلہ в کلک ہاؤس اصل میں کلک ہاؤس: ڈیٹا بیس خود ایک کردار ادا کر سکتا ہے۔ وقت کا سلسلہ ڈیٹا بیس، اس طرح خود کو "کھانا"۔

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

یہ بھی ایک منفرد چیز ہے - چونکہ ہم اس کے لیے اچھا کام کرتے ہیں۔ وقت کا سلسلہہم اپنی ضرورت کی ہر چیز اپنے اندر کیوں نہیں رکھ سکتے؟ ہمیں ضرورت نہیں ہے۔ Prometheus، ہم سب کچھ اپنے پاس رکھتے ہیں۔ جڑا ہوا گرافانا اور ہم اپنی نگرانی کرتے ہیں۔ تاہم، اگر کلک ہاؤس گر جاتا ہے، ہم کیوں نہیں دیکھیں گے، لہذا وہ عام طور پر ایسا نہیں کرتے ہیں۔

بڑا جھرمٹ یا بہت سے چھوٹے کلک ہاؤس

کیا بہتر ہے - ایک بڑا کلسٹر یا بہت سے چھوٹے کلک ہاؤسز؟ کے لئے روایتی نقطہ نظر ڈی ڈبلیو ایچ ایک بڑا کلسٹر ہے جس میں ہر درخواست کے لیے سرکٹس مختص کیے جاتے ہیں۔ ہم ڈیٹا بیس ایڈمنسٹریٹر کے پاس آئے - ہمیں ایک خاکہ دیں، اور انہوں نے ہمیں ایک دیا:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

В کلک ہاؤس آپ اسے مختلف طریقے سے کر سکتے ہیں. آپ ہر درخواست کو اپنا بنا سکتے ہیں۔ کلک ہاؤس:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

ہمیں اب کسی بڑے شیطان کی ضرورت نہیں ہے۔ ڈی ڈبلیو ایچ اور قابل ایڈمنز۔ ہم ہر درخواست کو اس کی اپنی دے سکتے ہیں۔ کلک ہاؤس، اور ڈویلپر اسے خود کر سکتا ہے، چونکہ کلک ہاؤس انسٹال کرنا بہت آسان ہے اور پیچیدہ انتظامیہ کی ضرورت نہیں ہے:

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

لیکن اگر ہمارے پاس بہت کچھ ہے۔ کلک ہاؤس، اور آپ کو اسے اکثر انسٹال کرنے کی ضرورت ہے، پھر آپ اس عمل کو خودکار کرنا چاہتے ہیں۔ اس کے لیے ہم مثال کے طور پر استعمال کر سکتے ہیں۔ Kubernetes и کلک ہاؤس-آپریٹر میں کبرنیٹس کلک ہاؤس آپ اسے "آن-کلک" رکھ سکتے ہیں: میں ایک بٹن پر کلک کر سکتا ہوں، مینی فیسٹ چلا سکتا ہوں اور ڈیٹا بیس تیار ہے۔ میں فوری طور پر ایک خاکہ بنا سکتا ہوں، وہاں میٹرکس اپ لوڈ کرنا شروع کر سکتا ہوں، اور 5 منٹ میں میرے پاس ایک ڈیش بورڈ تیار ہے گرافانا. یہ بہت آسان ہے!

نتیجہ؟

اس طرح، کلک ہاؤس - یہ وہ جگہ ہے:

  • تیز. یہ سب جانتے ہیں۔
  • بس. تھوڑا سا متنازعہ، لیکن مجھے یقین ہے کہ یہ تربیت میں مشکل ہے، لڑائی میں آسان ہے۔ اگر آپ سمجھتے ہیں کہ کیسے کلک ہاؤس یہ کام کرتا ہے، پھر سب کچھ بہت آسان ہے.
  • عالمگیر. یہ مختلف منظرناموں کے لیے موزوں ہے: ڈی ڈبلیو ایچ، ٹائم سیریز، لاگ اسٹوریج. لیکن ایسا نہیں ہے۔ OLTP ڈیٹا بیس، لہذا وہاں مختصر اندراجات اور پڑھنے کی کوشش نہ کریں۔
  • دلچسپ بات یہ ہے. شاید وہی جو کام کرتا ہے۔ کلک ہاؤساچھے اور برے معنوں میں بہت سے دلچسپ لمحات کا تجربہ کیا۔ مثال کے طور پر، ایک نئی ریلیز سامنے آئی، سب کچھ کام کرنا بند کر دیا. یا جب آپ دو دن تک کسی ٹاسک کے ساتھ جدوجہد کرتے رہے، لیکن ٹیلی گرام چیٹ میں سوال پوچھنے کے بعد، ٹاسک دو منٹ میں حل ہو گیا۔ یا Lesha Milovidov کی رپورٹ میں کانفرنس میں کی طرح، سے ایک اسکرین شاٹ کلک ہاؤس نشریات کو توڑ دیا ہائی لوڈ++. اس طرح کی چیز ہر وقت ہوتی ہے اور ہماری زندگی کو مشکل بنا دیتی ہے۔ کلک ہاؤس روشن اور دلچسپ!

آپ پریزنٹیشن دیکھ سکتے ہیں۔ یہاں.

کلک ہاؤس میں منتقل ہونا: 3 سال بعد

پر ہائی لوڈ سسٹم کے ڈویلپرز کی طویل انتظار کی میٹنگ ہائی لوڈ++ Skolkovo میں 9 اور 10 نومبر کو ہوگا۔ آخر میں، یہ ایک آف لائن کانفرنس ہوگی (اگرچہ تمام احتیاطی تدابیر کے ساتھ)، کیونکہ HighLoad++ کی توانائی کو آن لائن پیک نہیں کیا جا سکتا۔

کانفرنس کے لیے، ہم آپ کو ٹکنالوجی کی زیادہ سے زیادہ صلاحیتوں کے بارے میں کیسز ڈھونڈتے اور دکھاتے ہیں: HighLoad++ وہ واحد جگہ تھی جہاں آپ دو دنوں میں جان سکتے ہیں کہ Facebook، Yandex، VKontakte، Google اور Amazon کیسے کام کرتے ہیں۔

2007 سے بغیر کسی رکاوٹ کے ہماری ملاقاتیں کرنے کے بعد، اس سال ہم 14ویں مرتبہ ملاقات کریں گے۔ اس وقت کے دوران، کانفرنس میں 10 گنا اضافہ ہوا ہے؛ پچھلے سال، اہم صنعتی تقریب نے 3339 شرکاء، 165 مقررین، رپورٹس اور ملاقاتیں، اور 16 ٹریک بیک وقت چل رہے تھے۔
گزشتہ سال 20 بسیں، 5280 لیٹر چائے اور کافی، 1650 لیٹر فروٹ ڈرنکس اور 10200 پانی کی بوتلیں تھیں۔ اور مزید 2640 کلوگرام کھانا، 16 پلیٹیں اور 000 کپ۔ ویسے، ری سائیکل شدہ کاغذ سے جمع ہونے والی رقم سے، ہم نے بلوط کے 25 پودے لگائے :)

آپ ٹکٹ خرید سکتے ہیں۔ یہاں، کانفرنس کے بارے میں خبریں حاصل کریں - یہاں، اور تمام سوشل نیٹ ورکس پر بات کریں: تار, فیس بک, حفاظت и ٹویٹر.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں